                          ============================
                           R E L E A S E    N O T E S
                          ============================

                       QLogic 577xx/578xx Solaris Driver

                     10Gb BCM57710/BCM57711/BCM57711E/BCM57712
                          20Gb BCM57800/BCM57810/BCM57840

                  Copyright (c) 2014 QLogic Corporation
                              All rights reserved.


Version 7.10.7 (Feb 23, 2015)
============================
Supports: S10u10, S10u11, S11, S11u1, S11u2, S12, Illumos

 1. Problem:   The description string not showing support for 20Gb.

    Change:    Fixed description string.


Version 7.10.6 (Nov 05, 2014)
============================
Supports: S10u10, S10u11, S11, S11u1, S11u2, S12, Illumos

 1. Problem:   The command modinfo not showing correct version of driver.

    Change:    Fixed version string of modinfo.


Version 7.10.5 (Oct 21, 2014)
============================
Supports: S10u10, S10u11, S11, S11u1, S11u2, S12, Illumos

 1. Change:    Adjusted rebranding changes as per Marketing.


Version 7.10.50 (MMM DD, 2014)
==============================
Supports: S10u10, S10u11, S11, S11u1, S12, Illumos

 1. Problem:    (FW ETH) In certain cases TX switching flow directed cross PF
                traffic through the loopback port when not supposed to.

    Change:     Fix for the relevant FW flow.

    Introduced: Day 1.

    Relevance:  57712/57810/57840 Excluding NPAR mode.

 2. Problem:    (FW ETH) In certain cases TX switching flow directed cross PF
                traffic through the loopback port when not supposed to.

    Change:     Fix for the relevant FW flow.

    Introduced: Day 1.

    Relevance:  57712/57810/57840 Excluding NPAR mode.

    Relevance:  FCoE.

 3. Problem:    CQ74859/CQ73880 - UFP driver failed to load if UFP vports are
                not all enabled on switch.

    Change:     Change in the flow in eVBD to allow vports without vtag in case
                they are disabled.

    Introduced: Day 1.

    Relevance:  UFP only.


Version 7.10.4 (May 30, 2014)
============================
Supports: S10u10, S10u11, S11, S11u1, S12, Illumos

 1. Change:    Rebranded bnxe from Broadcom to QLogic

 2. Problem:   Device ID(0x16a2) missing in Solaris 11.X/10.X package.

    Change:    Added device ID 0x16a2

    Relevance: BCM57840


Version 7.10.3 (Feb 6, 2013)
============================
Supports: S10u10, S10u11, S11, S11u1, S12, Illumos

Fixes:
------
 1. Problem:    Wrong assert code in FLR final cleanup in case it is sent not
                after FLR.

    Change:     Fix assert code.

    Introduced: Day 1.

    Relevance:  BCM57712/57810/57840.

 2. Problem:    (FW ETH) CQ70492 - NVGRE VMQ indicated to wrong queue when VLAN
                ID set.

    Change:     Fix the NVGRE classification flow in the RX firmware.

    Introduced: Firmware version 7.6.0.

    Relevance:  BCM57712/57810/57840.

 3. Problem:    Incorrect 8073 link partner detection for KR2 work-around.

    Change:     Fix 8073 detection.

    Introduced: 1.78.1.

    Relevance:  57840-KR2.

 4. Problem:    CQ72182 - Observing iscsi personality for all PF in OEM
                specific NPAR.

    Change:     Fix wrong flow.

    Introduced: OEM specific NPAR (T7.10).

    Relevance:  OEM specific NPAR (T7.10).

 5. Problem:    10M-FD was advertised in case 10M-HD was requested for
                BCM54618SE.

    Change:     Advertise 10M-FD only when it is requested.

    Introduced: 7.8.11.

    Relevance:  BCM54618SE.

 6. Problem:    CQ72188 - 578xx fails to link with KinnexA SFP+T (1GBT) module.
                This fix handles only the link issue, assuming the SFP EEPROM is
                accessible, which is another aspect of the problem, handled in
                MFW 7.10.04.

    Change:     Reset TX_EN when RJ45 SFP module is detected.

    Introduced: T7.8.

    Relevance:  SFP-RJ45 module.

Enhancements:
-------------
 1. Request:    CQ72287 - Add support for Luma SFP+ (1GBT RJ45) module.
                This module lacks the connector type, so added this unspecified
                type while checking if the module compliance with 10G ethernet
                or not.

 2. Request:    CQ70040 - Add support writing driver version in share memory
                for management tools.


Version 7.10.2 (Nov 21, 2013)
=============================
Supports: S10u10, S10u11, S11, S11u1, S12, Illumos

Fixes:
------
 1. Problem:    CQ70554/CQ71071 - Failed to acquire 1G link over CL37 against
                1Gb switch. This issue happens when the device is in KR mode,
                and the switch advertises only 1G link speed over CL37.

    Change:     To solve this, the auto-detect mode was enabled in the Warpcore
                allowing it to select the higher speed protocol between 10G-KR
                (over CL73), or go down to 1G over CL73 when there's
                indication for it.

    Introduced: Day 1.

    Relevance:  578xx-KR.

 2. Problem:    CQ71386 - S11.1 All the ports are disabled upon
                initializing HCTS

    Change:     The default enabled link properties were not set correctly
                by the driver. When NWAM went to reconfigure an interface
                it would reset all the link defaults to off resulting in
                no valid phy speed settings.

    Introduced: Solaris 11 support.

    Relevance:  All when utilizing NWAM.

 3. Problem:    CQ68627 - Incorrect port value is displayed for specific Passive
                DAC (Direct Attached Cable) with missing Passive indication in
                it's EEPROM.

    Change:     In case there's a DAC indication, but without neither Passive
                or Active indication (In SFP+ Cable Technology field), treat
                this cable as a Passive DAC.

    Introduced: Day 1.

    Relevance:  578xx-SFP.

 4. Problem:    CQ71570 - Link is reported to be up when SFP+ module is
                plugged in without cable. This occurs with specific module types
                which may generate temporary TX_FAULT indication.

    Change:     Avoid changing any link parameters when checking TX_FAULT
                indication when physical link is down.

    Introduced: 7.4.1.

    Relevance:  578xx-SFP.

 5. Problem:    CQ71353 - KR device cannot get link on all 4 ports when
                connected to a 1G (54680E) IOM.

    Change:     Force CL48 sync_status LOW to prevent Warpcore from getting
                stuck in CL73 parallel detect loop while link partner is sending
                CL37 pages on all lanes.

    Introduced: Day 1.

    Relevance:  578xx-KR.

 6. Problem:    CQ70307 - Solaris11.1: Panic seen during HCTS sanity group.

    Change:     MAC and multicast address credits were not being managed
                properly with the firmware resulting in incorrectly filling
                up the filter tables.

    Introduced: Day 1.

    Relevance:  All.

Enhancements:
-------------
 1. Request:  Add support for indentifying receiving a PTP Timesync Packets.

    Change:   Update the firmware code in Rx path for supporting the
              requirements.

    Impact:   BCM57810/57840


Version 7.10.1 (Oct 10, 2013)
=============================
Supports: S10u10, S10u11, S11, S11u1, S12, Illumos

Fixes:
------
 1. Problem:    CQ69884 - Packet data error on non-lso with tunnel IPv6, with CSUM_ON_BD flag set.

    Change:     See HSI change above.

    Introduced: Firmware version 7.8.23. Fixed in eVBD 7.8.

    Relevance:  BCM57712/57810/57840.

 2. Problem:    (FW TOE) CQ66035 - In  rare cases while moving from generic
                buffers to pre-posted application buffers after all packets
                have arrived, completion might not be generated (wrongly),
                and the connection will hang.

    Change:     Fix the relevant firmware flow.

    Introduced: Day 1. Fixed in 7.8.

    Relevance:  All (TOE).

 3. Problem:    (FW ETH) CQ70398 - System may crash in a very rare case under
                heavy RSC traffic.

    Change:     Fix the relevant firmware flow.

    Introduced: Firmware version 5.0.0.

    Relevance:  RSC flows.

 4. Problem:    CQ70761 - FCoE Boot from SAN might fail
                in specific 4 port configurations.

    Change:     Fix the flow.

    Introduced: eVBD 7.8.50+.

    Relevance:  BCM57712/57810/57840 with BFS flow and 1g ports.

Enhancements:
-------------
 1. Request:    Add support for uEFI FCoE boot.

 2. Request:    Initial T7.10 release.


Version 7.8.11 (Jul 2, 2013)
============================
Supports: S10u10, S10u11, S11, S11u1, S12, Illumos

Fixes:
------
 1. Problem:    CQ69561/CQ69564/CQ69542 - link flap occur when link speed lower
                than 10G due to changes entered for CQ68365 to avoid
                intermittent link when speed changes between 10Mbps, 100Mpbs and
                1000Mbps.

    Change:     Revert change for CQ68365 for now.

    Introduced: 7.8.10.

    Relevance:  578xx.

 2. Problem:    CQ69770 - 10Mb/100Mb Half-Duplex are always advertised when
                only 10Mb/100Mb Full-Duplex configured.

    Change:     Select 10/100Mb half-duplex based of the speed capability mask.

    Introduced: Day 1.

    Relevance:  848xx/54618se.

 3. Problem:    CQ69884 - Packet data error on non-lso with tunnel IPv6, with
                CSUM_ON_BD flag set.

    Introduced: GRE day 1 (T7.8).


Version 7.8.10 (Jun 28, 2013)
=============================
Supports: S10u10, S10u11, S11, S11u1, S12, Illumos

 1. Problem:    Disabling 20G link speed doesn't take effect after MFW first
                brought up the link in 20G.

    Change:     Actually disabling 20G link speed, and not leave configuration
                as default.

    Introduced: 7.8.0.

    Relevance:  57840-KR2.

 2. Problem:    CQ68876 - Delete all vlan/MACs returns ECORE_BUSY, failing
                the flow.

    Change:     Don't return ECORE_BUSY when failing to take writer lock.

    Introduced: 7.8.9.

    Relevance:  All.

 3. Problem:    WHCK NDIS test for lso gre encapsulated packets failure.

    Change:     Include the extension length in a field given to the fw.

    Introduced: GRE day one (T7.8).

    Relevance:  GRE lso encapsulated packets with ipv6 with extension inner
                header.

 4. Problem:    CQ68365 - Intermittent link issue when link speed is lower than
                10G due to Warpcore firmware issue, which was initially observed
                on KX.

    Change:     Reset the OS8 Tx fifo during link initialization, and link
                change as a work-around.

    Introduced: Day 1.

    Relevance:  578xx.

 5. Problem:    The multifunction mode kstat displays an incorrect value for
                switch dependent and switch independent modes.

    Change:     Fixed the kstat value.

    Introduced: Day 1.

    Relevance:  Multifunction.

 6. Problem:    Increment the ip id of the inner IPv4 header instead of the
                outer on in LSO encapsulated packets.

    Introduced: NVGRE Day 1.

    Relevance:  LSO encapsulated packets with IPv4 inner header.

 7. Problem:    cq#69352 - IP checksum for IPv4 outer header in non-lso
                encapsulated packets was not calculated.

    Change:     Accept the ip checksum from the miniport and pass oit on bd to
                the firmware.

    Introduced: GRE day 1.

 8. Problem:    CQ69828/CQ69834 - evbda BSOD when the system boots from PXE has
                FCoE functions.

    Change:     Add support for BCV when undi driver not running on PF0/PF1.

    Introduced: T7.8 when BCV is enabled.

    Relevance:  BCV.

 9. Problem:    CQ69884 - Packet data error on non-lso with tunnel IPv6, with
                CSUM_ON_BD flag set.

    Introduced: GRE day 1 (T7.8).

Enhancements:
-------------
 1. Request:    CQ68664 - Add new PHY LED mode EXTPHY2 to set the link LED for
                100M/1G/10G through LED1 pin of the 8483x PHY.


Version 7.8.9 (Apr 18, 2013)
============================
Supports: S10u10, S10u11, S11, S11u1

 1. Problem:    CQ67427 - Running Quad/Dual port converged traffic (FCoE +
                iSCSI) when all 4 ports are configured with targets results
                in system breaking into the debugger.

    Change:     Driver will initialize FW ISCSI OOO consumer when ISCSI OOO
                loads.

    Introduced: Day 1 of ISCSI OOO - T6.0.

    Relevance:  ISCSI OOO.

 2. Problem:    CQ67859 - Long KR2 link up time due to consecutive KR2 disable/
                recovery.

    Change:     After KR2 is disabled, wait at least 5 seconds before trying
                KR2 recovery, to provide enough time for the link to come up
                after KR2 is disabled.

    Introduced: Day one.

    Relevance:  57840-KR2.

 3. Problem:    CQ67441 - iSCSI boot scenario fails when there was not link
                flap avoidance in MF_MODE.

    Change:     Allow LFA in MF_MODE during iSCSI/FCOE boot scenario, where the
                driver pass new flag DRV_MSG_CODE_LOAD_REQ_FORCE_LFA in the
                param field for the LOAD_REQ command.

    Introduced: MFW 7.8.3 (where LFA was disabled in MF_MODE).

    Relevance:  All.

 4. Problem:    CQ67802 - Very low performance when running traffic in AFEX
                mode.

    Change:     Driver is not able to configure max bandwidth for a VNIC on the
                fly.

    Introduced: Day 1 of AFEX.

    Relevance:  57712/57810/57840 AFEX only.
                Probability of the issue to happen depends on timing of
                commands sent from switch to the driver. Issue was first seen
                after change in switch firmware.

 5. Problem:    (FW iSCSI) CQ67635 - Chip crashes when iSCSI firmware tries to
                retransmit iSCSI login command. If the iSCSI Login is carrying
                data not aligned to 4 bytes, it will cause a hardware
                attention.

    Change:     Firmware fix to iSCSI retransmit flow.

    Introduced: Day 1.

    Relevance:  iSCSI.

 6. Problem:    CQ67285 - iSCSI-boot installation fails when switching SFP+
                boot port and moving the SFP+ module prior to boot. The SFP+
                insertion triggers an interrupt which configures the SFP+ module
                according to module parameters that were not init.

    Change:     In the context of the assertion interrupt of the SFP+ module
                configure the SFP+ module only if PHY parameters were
                initialized.

    Introduced: 7.4.1.

    Relevance:  578xx - SFI.

 7. Problem:    CQ67916 - Long KR2 link up time due to consecutive KR2 disable/
                recovery.

    Change:     After KR2 is disabled, wait at least 5 seconds before trying
                KR2 recovery, to provide enough time for the link to come up
                after KR2 is disabled.

    Introduced: Day one.

    Relevance:  57840-KR2.

 8. Problem:    CQ68300 - When SFP module EEPROM is access by OEM entity, the
                I2C may stop responding.

    Change:     Provide a way to read both sections a0/a2 of module EEPROM.

    Introduced: Day one.

    Relevance:  8726/8727/57800/57810-SFI.

 9. Problem:    (FW FCoE) CQ68159 - FCoE offload fails on second NPAR function
                in the same port.

    Change:     Fix FCoE packet classification flow.

    Introduced: Day 1.

    Relevance:  57810 NPAR mode.

10. Problem:    (FW FCoE) CQ68187 - After running a lot of FCoE traffic while
                two ports are running FCoE with at least on them with high
                function number (>1) in the same engine in 4-port mode a zeroed
                CQE will be given.

    Change:     Fix hardware initialization.

    Introduced: 57800, 57840, 4-port mode with multi-function.

    Relevance:  All.

11. Problem:    CQ66903 - Specific active DAC cannot get link.

    Change:     Set firmware mode to 0x2 in case of any DAC type.

    Introduced: Day one.

    Relevance:  578xx-SFI.

Version 7.8.8 (Feb 18, 2013)
============================
Supports: S10u10, S10u11, S11, S11u1

Fixes:
------
 1. Problem:    In SFP detection module when 1G device is detcted an error
                for wrong forced link speed is printed, regardless of
                requested link speed.

    Change:     Condition the warning print for wrong forced link speed
                only if the previous doesn't match the current.

    Introduced: 7.4.11.

    Relevance:  578xx - SFP+.

 2. Problem:    (FW ETH) Malicious VF may cause an hardware attention if VF
                will send LSO packet with zero mss value.

    Change:     Fix the relevant firmware flow.

    Introduced: Version 6.4.0 (Firmware version 6.4.0).

    Relevance:  BCM57712/57810/57840, SRIOV only.

 3. Problem:    (FW ETH) CQ66794 - device is writing to address 0 in 57710 TPA.

    Change:     Fix the relevant initialization code in 57710.

    Introduced: Version 6.4.0 (Firmware version 6.4.0).

    Relevance:  57710 only, when TPA is enabled.

 4. Problem:    (FW ETH) CQ66787 - When packet with payload bigger than MTU
                arrives a Malicious VF notification errr_id-0x3 was given.

    Change:     Silent drop packets with payload bigger than MTU.

    Introduced: Version 6.4.0 (Firmware version 6.4.0).

    Relevance:  BCM57712/57810/57840, SRIOV only.

 5. Problem:    CQ67469 - Unable to boot into Windows 2012 OS using iSCSI boot
                and 57711E OEM adapter.

    Change:     Remove driver code that read from non-initialized memory.

    Introduced: 7.6.0.

    Relevance:  BCM57710/57711.

 6. Problem:    Inter-PF TX switching was always allowed in NPAR mode if PFs
                were configured to perform tx switching.

    Change:     Fix the firmware so that controlling inter-PF TX switching in
                NPAR mode is configurable.

    Introduced: Day 1.

    Relevance:  BCM57712/57810/57840, NPAR mode with TX switching.

Enhancements:
-------------

 1. Request:    (FW ETH) Add support for the following requests:
                a. improve performance of non-Lso checksum offloading of
                   packets with tunneling.
                b. avoid getting the pseudo checksum on the packet.
                   (driver is not allow to change the packet).
                c. In tunneling LSO, set DF flag on the IPv4 header in case we
                   don't increment the IP ID.

    Change:     Fix the firmware code in TX path for supporting the
                requirements.

    Impact:     57712 and above.

 2. Request:    Set elink shmem link indication as up during loopback test.

 3. Request:    CQ66960 - Unify FC symbolic name format across OS between
                adapters.

    Change:     Set the Symbolic port name as per the recommendation.

    Impact:     All.

 4. Request:    CQ67078 - Control SFP+ tap values through nvm configuration.

 5. Request:    Removed the bnxef driver from the BRCMbnxe package.


Version 7.8.7 (Jan 16, 2013)
============================
Supports: S10u10, S11, S11u1

 1. Problem:    CQ61189 - statistics report 2 rx errors every 30 seconds.

    Change:     One of the counters was counted as error although it is not.

    Introduced: eVBD 6.2.x.

    Relevance:  Multi function traffic with discards.

 2. Problem:    CQ66402 - EEE is not fully enabled for BCM84834.

    Change:     Resolve EEE AN for BCM84834 as well.

    Introduced: Day 1.

    Relevance:  EEE in BCM84834.

 3. Problem:    CQ66558 - Total loss of network traffic and crash STOP 0xD1
                error can occur while sending L2 traffic on multiple TOS with
                TPA enabled.

    Change:     Fix the relevant TPA firmware flow.

    Introduced: Version 6.4.0 (Firmware version 6.4.0).

    Relevance:  BCM57710/57711/57712/57810/57840 L2 traffic with TPA enabled.

 4. Problem:    With TPA enabled, an aggregation of tcp packets can be started
                by a Pure-ACK packet over IPv6.

    Change:     Increase minimum packet size for RX TCP Aggregation.

    Introduced: Version 6.4.0 (Firmware version 6.4.0)..

    Relevance:  BCM57710/57711/57712/57810/57840 L2 traffic with TPA enabled.

 5. Problem:    (FW iSCSI) CQ66564 - Chip might crash when receiving data
                packet carrying TCP FIN flag during heavy iSCSI traffic.

    Change:     Race condition between data placement command, and receive
                buffer release command during connection termination.

    Introduced: Day 1.

    Relevance:  BCM57710/57711/57712/57810/57840, iSCSI traffic.

 6. Problem:    (FW iSCSI) When receiving data packet after FIN was received,
                a RST packet was sent in response.

    Change:     Data packet that arrives after FIN was received will be dropped.

    Introduced: Day 1.

    Relevance:  BCM57710/57711/57712/57810/57840, iSCSI traffic.

 7. Problem:    CQ66264 - Null pointer dereference when deleting vlan mac
                classifications.

    Change:     Add a multiple-reader/single-writer lock protecting the
                vlan_mac_obj registry list.

    Introduced: 7.0.0.

    Relevance:  All.

 8. Problem:    vlan mac functionality may cause memory leaks.

    Change:     Release unreferenced elements from execution queue when the
                queue gets emptied.

    Introduced: 7.0.0.

    Relevance:  All.

 8. Problem:    (FW ETH) CQ67367 - Complete starvation of ETH traffic in stress
                scenario involving FCoE and ETH traffic.

    Change:     Fix hardware initialization values.

    Introduced: Day 1 of 4-port.

    Relevance:  578xx, 4-port mode.

 9. Problem:    (FW FCoE) CQ67253 - Chip gets stuck during heavy FCoE traffic
                in 4-port mode while working vs. 3PAR targets.

    Change:     Fix relevant firmware flow.

    Introduced: Day-1.

    Relevance:  BCM57712/57810/57840, 4-port mode.

10. Problem:    (FW FCoE) CQ67011 - False error reporting while working vs.
                3PAR targets.

    Change:     Fix relevant firmware flow.

    Introduced: Day-1.

    Relevance:  BCM57712/57810/57840.

11. Problem:    Fix performance issue of non-LSO encapsulated packets with L4
                checksum offload.

    Change:     Fix the relevant firmware flow.

    Introduced: Firmware version 7.8.14.

    Relevance:  BCM57712/57810/57840, bnx2x only, only non-LSO encapsulated
                packets with L4 checksum offload.

Enhancements:
-------------
 1. Request:    CQ66689 - Add support for RJ45 SFP module.

 2. Request:    CQ64735 - Control SFP+ tap values through nvm configuration.


Version 7.8.6 (Dec 11, 2012)
============================
Supports: S10u10, S11, S11u1

Enhancements:
-------------
 1. Request:    By default the FCoE driver (bnxef) is not enumerated and
                FCoE is not enabled.  This can be overridden with the
                fcoe_enable config in bnxe.conf.


Version 7.8.5 (Dec 10, 2012)
============================
Supports: S10u10, S11, S11u1

Fixes:
------
 1. Problem:    After PMF migration when KR2 is enabled, a link flap would occur
                since the KR work-around indication was not saved in shmem.

    Change:     Save KR2 work-around parameter in shmem, and synchronize it like
                rest of link parameters with all PFs.

    Introduced: T7.8.

    Relevance:  57840-KR2.

 2. Problem:    CQ66127 - FCoE statistics acquired by switch with AFEX mode
                are smaller than expected.

    Change:     Add missing counters to the FCoE statistics sent by driver
                to MFW.

    Introduced: Day 1 of AFEX.

    Relevance:  AFEX mode only.

 3. Problem:    Final cleanup on 4-port during FLR mode may cause hardware
                attention.

    Change:     Fix the relevant firmware flow.

    Introduced: Day 1.

    Relevance:  BCM57712/57810/57840, FLR flow in 4-port mode.

Enhancements:
-------------
 1. Request:    Add support for RSS of the internal headers of L2-GRE and
                IP-GRE tunneled packets.

    Impact:     57712 and above.

 2. Request:    Exposed configuration and support for 20Gb devices.

 3. Request:    CQ66820 - Add logic to propagate SF per port storage
                personality config in NVRAM.


Version 7.8.4 (Nov 16, 2012)
============================
Supports: S10u10, S11, S11u1

Fixes:
------
 1. Problem:    CQ65890 - BSOD while running iscsi boot.

    Change:     Changed iscsi connection terminate flow to handle timeout
                for ramrod completion correctly during OS shutdown.

    Introduced: T6.0.

    Relevance:  iscsi.

 2. Problem:    CQ65846 - Delayed-ACK was always enabled regardless settings in
                iSCSI miniport.

    Change:     eVBD now honor parameter it gets from miniport.

    Introduced: Day 1.

    Relevance:  iSCSI offload.

 3. Problem:    CQ65981 - KR link stays down after toggling OEM switch port
                state.

    Change:     Add recovery sequence that runs every two seconds for four times
                after PHY is initialized, and after link goes down. In case it
                detects link down, it toggles RX/TX asic, and restarts autoneg.

    Introduced: Day 1.

    Relevance:  57810-KR.

 4. Problem:    CQ66284 - DXGXS fails to pass traffic.

    Change:     Set XMAC mode to XLGMII only in KR2 and not in DXGXS mode.

    Introduced: 7.8.0.

    Relevance:  57840-DXGXS.

 5. Problem:    (FW) CQ66105 - In SWITCH DEPENDENT mode, outer vlan is
                incorrect after function update.

    Change:     Fix the relevant firmware flow.

    Introduced: 7.2.0.

    Relevance:  All.

 6. Problem:    (FW) CQ65838 - SRIOV: assert when uninstalling the IOV switch.

    Change:     Downgraded the initial_cleanup_func_invalid_state assert in
                xCommonFlr InitialCleanup to a warning.

    Introduced: 7.8.0.

    Relevance:  BCM57712/57810/57840.

 7. Problem:    CQ65780 - Link flap on KR2 against 20G switch.
                CQ66364 - Link delay on KR2 connected to Pass through.
                CQ66079 - KR2 cannot link against various 10G switches.
                CQ66331 - Same as above.
                CQ66407 - Same as above.
                CQ66381 - Same as above.

    Change:     1. Add 10G fallback to KR2 devices, in case link partner doesn't
                   set NP bit in the base page, or it only advertise 1G-KX.
                   In that case, KR2 configuration is removed, and AN will be
                   restarted.
                2. Add KR2 recovery, in case port is in 10G-fallback mode, and
                   sigdet is cleared, BP is cleared or LP advertises NP in BP.

    Introduced: T7.8.

    Relevance:  57840-KR2.

 8. Problem:    CQ65423 - FCP RSP overflow/underflow error was wrongly
                reported.

    Change:     Fix the relevant firmware flow.

    Introduced: Day 1.

    Relevance:  FCoE.

 9. Problem:    CQ66305 - Offloading ISCSI connection with COS>0 caused HW
                assert.

    Change:     Fix the relevant firmware flow.

    Introduced: 7.8.5.

    Relevance:  iSCSI on 57712/578xx.


Version 7.8.3 (Oct 30, 2012)
============================
Supports: S10u10, S11, S11u1

Fixes:
------
 1. Problem:    (FW) CQ65838- BSOD while uninstalling the IOV switch.

    Change:     FLR Initial Cleanup for VF with function state disabled is now
                allowed.

    Introduced: Firmware version 7.8.0.

    Relevance:  BCM57712/57810/57840.

 2. Problem:    CQ61866 - Link drops during reboot test using MFW older than
                T7.2 due to lack of appropriate PHY lock in those versions.
                Since this is timing related, some systems may exhibit this
                issue more often than others.

    Change:     When old MFW is detected, check correct EMAC setting for CL45
                and the correct PHY clock to achieve good PHY access. In case
                it is not set correctly, change it accordingly.
                In addition, in case of external PHY, set the external PHY's
                EMAC mode in case it is different than the internal PHY.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ65641 - No 1G link against certain switches.

    Change:     Restore CL72 misc control register to default value rather than
                0.

    Introduced: T7.2.

    Relevance:  578xx-KR.

 4. Problem:    CQ65784 - No link against 1G switch in KR2 mode.

    Change:     Check 1G link as well in KR2 mode.

    Introduced: 7.8.0.

    Relevance:  57840.

 5. Problem:    Several KR registers were not set correctly back to default
                correctly after loopback test.

    Change:     Set those global registers over the global WC lane (zero) rather
                than the current lane.

    Introduced: 7.4.3.

    Relevance:  57840 - KR/KR2.

 6. Problem:    KR2 work-around (From CQ65727 fix), may be set off too early.

    Change:     Wait for 4 seconds after signal is detected, before start
                checking the need for symptoms of this problem, and in that
                case, disable the whole KR2 configuration, and not just CL73.

    Introduced: 1.78.02.

    Relevance:  KR2.

 7. Problem:    CQ65773 - No link after PXE boot in link flap avoidance case.

    Change:     Set the appropriate default PHY DEVAD even if LFA kicks in.

    Introduced: 7.4.3.

    Relevance:  57712.


 8. Problem:    (FW COMMON) Issues with FCOE interfaces when in 4-port NPAR
                mode due incorrect separation between 2 ports of path.

    Change:     FW fix for separation between the 2 ports of path.

    Introduced: Day 1.

    Relevance:  BCM57712/BCM578xx, only on 4-port NPAR systems.

 9. Problem:    (FW iSCSI) CQ65951 - Chip 57840 hangs when offloading iSCSI
                connection.

    Change:     Firmware implementation fixed.

    Introduced: FW 7.6.0.

    Relevance:  57840.

10. Problem:    (FW TCP) CQ65884 TCP retransmission timeout value was much
                longer (like 16 to 19 sec) than expected.

    Change:     TCP FW fix. Do not re-calculate rtt and RTO during retransmit
                state, even if timestamp option is set.

    Introduced: Day 1.

    Relevance:  iSCSI and TOE on BCM57710/BCM57711/BCM57712/BCM578xx.

11. Problem:    Case 575966 - Bug in Solaris installation check script

    Change:     The PKG_INSTALL_ROOT environment variable is now used
                instead of BASEDIR.

    Introduced: Day 1.

    Relevance:  Package installation scripts.

Enhancements
------------
 1. Request:    Added new ioctls for edebug/diag support and new kstats
                that show the 'bus:dev:func' and 'vendor:device' info.

 2. Request:    Installation packages are no longer specific to a Solaris
                Update. The are now only specific to the Solaris version and
                architecture.


Version 7.8.2 (Oct 4, 2012)
===========================

Fixes:
------
 1. Problem:    (FW COMMON) CQ65406 - BSOD in VM w/ driver load/unload.

    Change:     Fix to firmware FLR flow in Initial Cleanup Ramrod.

    Introduced: Version 6.4.0 (Firmware version 6.4.0).

    Relevance:  BCM57712/57810/57840, SRIOV Only, FLR on VF0 on MF system can
                cause system crash.

 2. Problem:    (FW ETH) NVGRE RSS was causing reordering problems.
                The problem and its fix are not yet exposed to the user.

    Change:     Modification to RX Fastpath code.

    Introduced: Firmware version 7.8.2.

    Relevance:  BCM57712/57810/57840.

 3. Problem:    CQ65910 - KR2 fails to link against (non-8073) 10G switch.

    Change:     Apply KR2 work-around in case CL73 fsm is stuck waiting for
                next-page on a specific lane, and not on both lanes of the port.

    Introduced: T7.5.

    Relevance:  KR2.

Enhancements
------------
 1. Request:    Added PCI IDs and support for 57840.

 2. Request:    Support for Flex Fabric

    Relevance:  57712 and above.

 3. Request:    (FW ETH) Add support for enabling and disabling NVGRE
                functionality on functions that are already up.

    Change:     Added fields nvgre_change_clss_flg and nvgre_clss_en for
                setting the NVGRE Classification Enable Flag and fields
                nvgre_change_rss_flg, nvgre_rss_en fields for setting the NVGRE
                RSS Enable Flag to the Function Update Ramrod.

    Relevance:  57712 and above.


Version 7.8.1 (Sep 28, 2012)
============================

Fixes:
------
 1. Problem:    When remote fault is disabled by configuration, there may be a
                problem with external link.

    Change:     Change ELINK_FEATURE_CONFIG_IEEE_PHY_TEST definition.

    Introduced: 1.72.13.

    Relevance:  848xx.

 2. Problem:    (FW ETH) CQ65322 - BSOD as a result of packets that were not
                completed on the forward channel.

    Change:     Fix a bug in ETH firmware flow regarding forward channel consumer updates.

    Introduced: Firmware version 6.4.0.

    Relevance:  BCM57712/57810/57840, TOE/iSCSI with high rate offloads and uploads.

 3. Problem:    When SFP+ module is plugged in after driver is already loaded,
                it may not be recognized.

    Change:     Allow SFP module recognition time of up to 300ms, without
                resetting the module power in the middle.

    Relevance:  578xx-SFP.

    Introduced: 7.4.1.

 4. Problem:    CQ65475 - LPI keeps on advancing when link speed is one
                for which EEE is inactive.

    Change:     Enable LPI and claim EEE is active only if EEE was negotiated
                for actual link speed.

    Introduced: 1.74.11.

    Relevance:  578xx, EEE.

 5. Problem:    CQ56737(cont.) - TX_DIS signal causes current leakage issue on
                the module 3.3V power rail (V_3P3_SFP2) when no module is
                plugged.

    Change:     Keep TX laser always enabled even when SFP+ module is plugged
                out.

    Introduced: 7.4.0.

    Relevance:  578xx.

 6. Problem:    No link on 578xx 10G-baseT boards. This problem is introduced
                only now, due to changes in 20G link indication which indirectly
                affects detecting this type of link.

    Change:     Apply correct supported mode to the XFI interface of the
                Warpcore.

    Introduced: No.

    Relevance:  578xx.

 7. Problem:    When device in KR2 mode link with BCM8073, and link partner
                initiate autoneg, link is not recovered.

    Change:     In this mode, when link goes down, and KR2 work-around is set,
                re-advertise 20G speed and restart autoneg. This fix also covers
                scenario where a 8073 link partner is swapped with true KR2 link
                partner.

    Introduced: T7.5.

    Relevance:  57840-KR2.

 8. Problem:    CQ65532 - BSOD while running reboot test with npar enabled.

    Change:     Assert in checked build only, checked that a certain pointer was
                NULL before accessing it. The pointer was not defined as volatile,
                thus causing the value read not to be the latest under certain
                conditions. Changed the pointer to be volatile.

    Introduced: T6.2

    Relevance:  Checked build.

 9. Problem:    DCB is not funcitonal on 4-port device when using 4X10G
                configuration.

    Change:     FW fix in DCB update flow - wrong credit counterds were used.

    Introduced: Day 1.

    Relevance:  57840, 4-port mode with DCB enabled.

10. Problem:    CQ65510 - EEE NPAR: EEE does not become enabled in NPAR mode.

    Change:     Certain required flags weren't set for elink.

    Introduced: 7.4.17.

    Relevance:  578xx, EEE, NPAR.

11. Problem:    (FW ETH) Classification using internal MAC of GRE tunneled
                packets was incorrectly doing statistics according to tunnel
                MAC.
                The problem and its fix is not yet exposed to usage.

    Change:     Statistics are now done according to internal MAC of GRE
                tunneled packets when GRE tunnel classification is enabled
                (NVGRE).

    Introduced: Firmware version 7.6.0.

    Relevance:  57712 and above.

12. Problem:    (FW ETH) CQ65322 - BSOD as a result of packets that were not
                completed on the forward channel.

    Change:     Fix a bug in ETH firmware flow regarding forward channel
                consumer updates.

    Introduced: Firmware version 6.4.0.

    Relevance:  BCM57712/57810/57840, TOE/iSCSI with high rate offloads and
                uploads.

13. Problem:    Wrong tunnel IP checksum calculation in LSO over tunneling.
                The problem and its fix is not yet exposed to usage.

    Change:     Fix a bug in ETH firmware flow in checksum calculation of the
                tunnel IP header.

    Introduced: Firmware version 7.6.2.

    Relevance:  BCM57712, LSO over tunneling only.

14. Problem:    CQ65645 - Possible incorrect link speed provision following
                rapid link speed change.

    Change:     Clear link speed mask after each link change, and not only after
                link down.

    Introduced: Day 1.

    Relevance:  Autoneg.

15. Problem:    Ethtool -p working for PMF only.

    Change:     Set HW lock for each PHY transaction. Allow led blinking for
                not PMF.

    Introduced: Day 1.

Enhancements:
-------------
 1. Request:    CQ63733/CQ63815 - Support new DIDs for 57840 device.

 2. Request:    Add PHY FW upgrade for BCM84834.

 3. Request:    Add support for 20G-KR2.

 4. Request:    (FW COMMON) Add better notifications for malicious VF operation
                detection.

    Relevance:  57712 and above.

 5. Request:    (FW COMMON) Add ramrod to set the timesync registers for
                57840B0. Works around the problem of reducing the drift-adjust
                period when the counter has already passed the new period
                value.

    Relevance:  57840B0

 6. Request:    (FW ETH) Allow suspending internal switching to a destination
                PF upond driver request. This is in order to support Searcher
                nic_mode change under traffic.

    Relevance:  57712 and above.

 7. Request:    Add support for LSO for packets with GRE/VXLAN tunnel
                encapsulation.
                This enhancement is not yet exposed to usage.

    Relevance:  57712 and above.

 8. Request:    (FW ETH) Add support for TX checksum offload (IP, TCP and UDP)
                for packets with GRE/VXLAN tunnel encapsulation.
                This enhancement is not yet exposed to usage.

    Relevance:  57712 and above.

 9. Request:    (FW ETH) Add support for RSS of internal 2-tuple / 4-tuple for
                packets with GRE tunnel encapsulation (NVGRE).
                This enhancement is not yet exposed to usage.

    Change:     Added firmware code in RX path for supporting RSS of GRE
                tunneled packets (NVGRE).

    Impact:     57712 and above.


Version 7.4.12 (Aug 28, 2012)
=============================

Fixes:
------
 1. Problem:    CQ65280 - Parity error might occur during specific flows.

    Change:     Correct link's opening of NIG-BRB filters for 57710 and 57711,
                which set a non-existent bit and dirtied the idle check.

    Introduced: 1.74.04.

    Relevance:  57710, 57711.

 2. Problem:    Link sometimes continuously flapped when EEE was configured.

    Change:     Remove EEE support for 84833 phys with fw version 0x1f81.

    Introduced: 7.4.3.

    Relevance:  578xx, EEE.

 3. Problem:    CQ65325 - on 4-port devices, some functions do not show LPI
                assertions in their statistics.

    Change:     Remove the disablement of LPI assertions via a register common
                to both ports on a single path.

    Introduced: 7.4.3.

    Relevance:  578xx, EEE.

 4. Problem:    CQ64635 - system fails to boot from second port

    Change:     Delay to wait for link to come up and to discover at least one
                disk on all interfaces based on a timeout of 30+ secs has
                caused a CVL to be generated by the switch on the virtual
                link established by the pre-boot environment. Because of CVL
                reception, no link up event was generated to driver when LFA
                was enabled. Fixed this by removing the delay for all other
                interfaces other than the one interface which participates
                in BFS using pre-boot environment.

    Introduced: 7.4.x (LFA feature)

    Relevance:  All.

Enhancements:
-------------
 1. Request:    Exposed detailed buffer and BD chain information for the
                Rx, Rcq, and Tx queues in the mdb module and kstats.


Version 7.4.11 (Aug 24, 2012)
=============================

Fixes:
------
 1. Problem:    Power leakage when over current asserted.

    Change:     SFP+ power disable when over current asserted..

    Relevance:  All.

    Introduced: Day one.

 2. Problem:    CQ65266 - PFC storm is generated when PFC is disabled and
                enabled on the switch port while converged I/O is running.

    Change:     BRB configuration is the same for PFC and PAUSE.

    Relevance:  BCM57810.

    Introduced: T7.2.

 3. Problem:    LFA isn't working.

    Change:     By default request to use the flow control setting from the
                shared memory link config an also use the EEE setting from
                nvram.

    Relevance:  LFA.

    Introduced: Day one.

Enhancements:
-------------
 1. Request:    CQ64686 - boards with 54618se external phys now use native eee
                instead of auto-grEEEn.

 2. Request:    Display the following warning when non-10G Ethernet SFP optic
                module is plugged in, and the speed is forced to 1G.
                "Warning: Link speed was forced to 1000Mbps. Current SFP module
                in port 2 is not compliant with 10G Ethernet".


Version 7.4.10 (Aug 16, 2012)
=============================

Fixes:
------
 1. Problem:    Interrupt kstat/kmdb statistics are not correct.

    Change:     Some statistics were not being incremented atomically
                resulting in possible corruption.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    Link flap avoidance feature might not work on BE architecture.

    Change:     Fix Endianity in the LFA structure in the scratchpad.

    Introduced: 7.4.3 (when LFA feature was added).

 3. Problem:    CQ64942 - DCC doesn't converge because link isn't flapped after
                clp exit, causing remote side not to send DCC first command.

    Change:     Disable LFA for first link flap after clp exit with DCC
                parameters.

    Introduced: 7.4.3.

    Relevance:  MF allowed mode.

 4. Problem:    CQ56737 - TX_DIS signal causes current leakage issue on the
                module 3.3V power rail (V_3P3_SFP2) when no module is plugged.

    Change:     Keep TX laser always enabled, should be disable in case of fault
                to get valid module.

    Introduced: 1.70.00.

    Relevance:  578xx.

 5. Problem:    CQ65074 - Possible no link when LFA kicks in after pre-boot
                driver initialized the link, since preboot drivers do not
                work in interrupt mode, hence do not initialize it.

    Change:     If LFA terms are met, initialize the necessary interrupt
                registers in the PHYs.

    Introduced: 7.4.3.

    Relevance:  57712 + 8073/8727/848x3.
                578xx + 54618se/848x3.

 6. Problem:    CQ65208 - SPARC system panic after loading driver.

    Change:     The echo field in the slow path messages was not being
                byte swapped correctly in the response.

    Introduced: 7.4.9.

    Relevance:  SPARC.

Enhancements:
-------------
 1. Request:    Removed an extra call to both the rx and tx mutex locks in
                the interrupt handler. Additionally the interrupt handler for
                legacy interrupt mode was simplified.

 2. Request:    Add EEE to LFA conditions.


Version 7.4.9 (Aug 10, 2012)
============================

Fixes:
------
 1. Problem:    CQ64846 - 1G management ports link up at 10M instead of 1G as
                soon as the Solaris driver gets loaded

    Change:     The requested phy configuration was not correct.

    Introduced: Day 1.

    Relevance:  Devices w/ 1G management ports.

 2. Problem:    B10_IOC_GET_L2_CHIP_STATISTICS IfInErrorsOctets not set by
                driver.

    Change:     Assign 0 to IfInErrorsOctets field.

    Introduced: Day 1.

    Relevance:  Internal debugging tools.

 3. Problem:    Possible memory leak in mcast configuration flow.

    Change:     Properly release memory.

    Introduced: T6.4.

    Relevance:  All.

 4. Problem:    CQ64645 - Duplex state is always shown as full even if actual
                duplex is half.

    Change:     Display the correct duplex value.

    Relevance:  57712.

    Introduced: T7.0.

Enhancements:
-------------
 1. Request:    Use different bit to mark to MFW not to take link ownership upon
                other driver unload flow (due to MFW logics change).

    Relevance:  MFW version 7.4.9.

 2. Request:    Internal code changes to reduce compilation warnings.


Version 7.4.8 (Jul 16, 2012)
============================

Fixes:
------
 1. Problem:    CQ64368 - GRC timeouts are seen when driver trying to configure
                XMAC with PFC setting, while link speed is lower than 10G, and
                only UMAC is active. On extreme cases, GRC timeout may lead to
                system hang.

    Change:     Configure PFC parameters on XMAC only when XMAC is active.

    Introduced: Day 1.

    Relevance:  578xx connected to DCBX enabled switch in 1G link speed or
                lower.

 2. Problem:    CQ64474 - Solaris 11 - SPARC - Host does not drop PLOGI
                LS_ACC frame with EOFn (instead of EOFt).

    Change:     ELS type frames are single frame sequence. Therefore only EOFt
                is the right EOF for all ELS type based frames. Any other EOF
                other than EOFt when received for ELS type frame is an error
                and it is dropped.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    Trace events facility introduced causes panic if trace event
                flag is not enabled.

    Change:     Trace event dumping does not check whether Trace flag is enabled
                before dumping trace events. This causes trace event to be
                dumped to unallocated address.

    Introduced: Day 1.

    Relevance:  Only debug drivers.

 4. Problem:    EEE statistics provided is mixed between ports.

    Change:     Properly identify EEE statistics source for port.

    Introduced: eVBD 7.4.4.

    Relevance:  EEE.

 5. Problem:    CQ64469 - Due to race between AFEX and normal link status
                modification flows, link failure is sometimes not indicated to
                OS in AFEX mode.

    Change:     In AFEX mode verify that the link is up before reporting it as
                active to the OS.

    Introduced: eVBD 7.0.5.

    Relevance:  AFEX.

Enhancements:
-------------
 1. Request:    Prevent link-flaps during driver unload on UNDI flow.

 2. Request:    CQ57766 - Support "Pause on Exhausted Ring" from CCM
                configuration rather than device manager\registry for Multi
                function.

    Relevance:  Multi Function mode with CCM version 7.4.6 ,MFW version 7.4.6,
                Boot Agent 7.4.8.

 3. Request:    CQ64133 - CCM - NIC Partitioning - Add FW Flow Control setting
                next to HW Flow Control setting

                The l2_fw_flow_ctrl driver configuration setting is now only
                applicable when in single function mode.  When in multi
                function the setting is pulled from nvram and shared memory.
                This is documented in the description for the l2_fw_flow_ctrl
                variable in bnxe.conf.

    Relevance:  l2_fw_flow_ctrl driver configuration setting.

 4. Request:    Better system logging of phy supported capabilities, phy
                configured settings, and phy requested settings.


Version 7.4.7 (Jul 01, 2012)
============================

Fixes:
------
 1. Problem:    Driver update image fails to install during Solaris
                installation.

    Change:     The checkinstall script does not run as root and it
                was detecting the inbox driver and trying to execute
                rem_drv. Moved this to the postinstall script which
                runs as root. Also added documentation to the readme.txt
                describing how to install the DU images using either a
                CD/DVD or a USB flash drive.

    Introduced: 7.4.6.

    Relevance:  Packaging.

 2. Problem:    CQ64196 - Solaris 10u10 SPARC AFEX FCP2: Host sends REC before
                sending ABTS for dropped SRR.

    Change:     When SRR is in progress, and a REC timer indication is
                received from the firmware, driver doesnot check the current
                SRR progress state. Now it is checked and the REC timer
                indication is ignored.  Also converted REC timeout and SRR
                timeout routines to run in task context instead of timer
                context. Also from SRR timeout routine, ABTS is sent for the
                original task as per the standards.

    Introduced: Day one.

    Relevance:  All.

 3. Problem:    CQ64309 - Solaris 11 - SPARC - Host reports incorrect FC CRC
                error count.

    Change:     Statistics maintained by firmware are returned in Little Endian
                when requested. On SPARC, driver needs to byte swap and
                accumulate, so that cumulative stats are displayed correctly
                via kstats.

    Introduced: Day one.

    Relevance:  SPARC.

 4. Problem:    CQ63891 - BSOD when stress load / unload NDIS and
                eVBD driver.

    Change:     Remove relevant initialization from firmware.

    Introduced: eVBD 7.4.5.

    Relevance:  BCM57710/BCM57711/BCM57712/BCM578xx.

 5. Problem:    Wrong fairness between traffic-classes.

    Change:     Fix ETS default settings.

    Introduced: eVBD 7.4.9.

    Relevance:  BCM57710/BCM57711/BCM57712/BCM578xx.

Enhancements:
-------------
 1.  Request:   Crashdump on x86 and SPARC.

                Administrators could configure the FCoE SAN device as
                a dump device using dumpadm(1M) administrative command
                When the system panics, crashdump will be saved in the
                configured dump device. Upon reboot crash dump will be
                available in /var/crash directory as a file.

                However, dumping of memory pages happen when system
                is in crashed state. As per Solaris design not
                all features of solaris kernel are available during dumping.
                Therefore, error recovery during such dumping is not
                supported in this implementation. For greater details
                on solaris crash dump, please refer dump(9E) man page.


Version 7.4.6 (Jun 22, 2012)
============================

Fixes:
------
 1. Problem:    CQ64015 - Win2012: BSOD  when loading eVBD 7.4.6 driver.

    Change:     Fix init values.

    Introduced: eVBD 7.4.6.

    Relevance:  BCM578x0.

 2. Problem:    BSOD on driver load with ETS DCB traffic.

    Change:     Back out FW 7.4.7 to 7.4.6.

    Introduced: eVBD 7.4.6.

    Relevance:  DCB/ETS flows.

 3. Problem:    CQ63996 - Solaris 10u10 SPARC E3 NPAR Brocade FCF:IO
                drop to 0MB/sec after short cable pull on one of the
                target paths.

    Change:     DMA resources are freed as soon as a SQ is posted for
                transmission of the middle path response, this caused
                firmware to generate DMA cycles for an unmapped address.
                Now middle path ELS response are sent via L2 path.

    Introduced: Day one.

    Relevance:  SPARC and x86.

 4. Problem:    CQ63240 I/O does not resume after zone remove add within
                port down timeout.

    Change:     Same as the above fix.

    Introduced: Day one.

    Relevance:  SPARC and x86.

Enhancements:
------------
 1. Request:    Lint cleanup - requested for inboxing.

 2. Request:    Added version info to the binding data used when bnxef binds
                to the bnxe driver. Version used is the shared driver version
                so the two drivers are now absolutely tied to each other and
                zero mixing and matching can occur.

 3. Request:    DU installation images are now created automatically during
                the build process.  Both a directory tar and iso image is
                created.


Version 7.4.5 (Jun 18, 2012)
============================

Fixes:
------
 1. Problem:    CQ63755 - Driver crash after load as result of LFA logic.

    Change:     Close and open NIG-BRB gates only during when driver loads and
                unloads respectively.

    Introduced: 7.4.3.


Version 7.4.4 (Jun 17, 2012)
============================

Fixes:
------
 1. Problem:    (FW iSCSI) CQ61938 - When running iSCSI heavy traffic and TCP
                out-of-order conditions occur, the firmware might send out
                NOP-OUT commands with zero-length TCP window. This will
                eventually cause the connection to close and be recovered.

    Change:     Firmware fix in TCP out-of-order mechanism.

    Introduced: Firmware version 6.2.0.

    Relevance:  BCM57710/BCM57711/BCM57712/BCM578xx.

 2. Problem:    Device may crash due to incoming traffic when driver is
                unloaded.
                The root cause is insufficient gate closure between the NIG to
                the BRB during link flap avoidance. It used to rely on specific
                filters, which didn't capture all traffic.

    Change:     Close the NIG-BRB gate during LFA reset to prevent packets
                flowing in before BRB is reset.

    Introduced: 7.4.3.

 3. Problem:    Solaris 10U10:SPARC NPAR: host failed to complete fcp2 "tar
                xvf /dev/rmt/x" cmd after delaying read data.

    Change:     The sequence recovery routines were not converted for
                endianness properly.

    Introduced: Day one.

    Relevance:  SPARC.

 4. Problem:    Solaris 10U10 SPARC: Host fails to retry PLOGI after receiving
                PLOGI LS_ACC with incorrect SOF.

    Change:     The check was specific to defined SOFs, when the invalid SOF
                is not one of the defined SOFs, the driver does not drop the
                frame. Changed the check appropriately to check for non-defined
                invalid SOFs. Also fixed the EOF check.

    Introduced: Day One.

    Relevance:  All.

Enhancements
------------
 1. Request:    Reduce the recovery time for error scenarios.
                pkt_timeout provided for SCSI commands by SCSI stack is 60
                secs. This timeout has been reduced by half. The RRQ timeout has
                been reduced from 30 secs to 10 secs.

 2. Request:    Dropped support for Solaris 10 Update 9.


Version 7.4.3 (Jun 02, 2012)
============================

Fixes:
------
 1. Problem:    CQ63463 - BSOD during continuous reboot (Seen after dozens of
                iterations).

    Change:     Before driver reset the nig, verify that there are no more
                pending packets to prevent MFW from hang.

    Introduced: Day 1. Fixed in eVBD 7.2.53.

    Relevance:  All. Probability is higher when management/AFEX/LLDP traffic
                is running.

 2. Problem:    If 7.2.x eVBD works with MFW version earlier
                than 7.2.1 (e.g. 7.0), a corruption to the scratchpad might
                occur, our analysis points it will cause link issues when
                owned by MFW but more unexpected issues might occur.

    Change:     eVBD check MFW version and in case it is <= 7.2.1
                it will not write to this area.

    Introduced: eVBD 7.2.x.

    Relevance:  BCM57712/BCM578x0 only when working with MFW <= 7.2.1.

Enhancements:
-------------
 1. Request:    CQ63159 - Add basic Link Flap Avoidance support.
                Whenever link toggles, the requested link parameters are saved
                in a shared memory and are used to determine the conditions for
                LFA to occur. LFA can be achieved only in case all of the
                following terms take place:
                1. MFW release used is 7.4.2 and above
                2. Requested Link Speed, Duplex, Speed Capability Mask and
                   Requested Flow Control are the same as the saved ones
                Note that in case LFA conditions are not met, link should be
                re-initialized and flapped like before.

 2. Request:    CQ63321 - enable parity attention for 578xx.

    Relevance:  578xx.

 3. Request:    Cstyle Cleanup - Requested for Solaris inbox integration
                effort.


Version 7.4.2 (May 25, 2012)
============================

Fixes:
------
 1. Problem:    CQ62467 - AFEX mode - Eth VIF does not work after reboot

    Change:     There was a race condition in AFEX mode where non-PMF functions
                would receive NIV events before the function was started.

    Introduced: Day one.

    Relevance:  AFEX.

 2. Problem:    CQ62543 - SFP+ module's not responding to I2C request.
                This problem occurs when the MFW is reset during I2C operation,
                and cause the I2C bus for read error due to "Transaction
                Pending".

    Change:     Extend the I2C work-around such that on the last try, perform a
                SFP+ power reset to release this state.

    Introduced: Day 1.

    Relevance:  578xx SFI.
                This fix applies only for boards with SFP+ power disable option
                (nvm cfg 160).

 3. Problem:    Idle check failures seen after error recovery.

    Change:     Refrain from accessing interrupt generation unit when disabled.

    Introduced: 7.0.21 or earlier.

    Relevance:  BCM57712/BCM578x0 - error recovery.

 4. Problem:    CQ62945 - Solaris 11 AFEX:System panic in configuration
                (5548 NPV + Brocade DCX-4S) with 125 NPIV.

    Change:     When FIP FDISC is rejected by sending LS_RJT, earlier driver,
                was retrying indefinitely and causing panic. Now the retry
                has been removed and it will exit without creating NPIV ports.

    Introduced: Day one.

    Relevance:  All.

 5. Problem:    CQ63302 - BSOD when booting into Windows.

    Change:     Don't access non existing register in specific BCM5771x chips.

    Introduced: eVBD 7.2.51 and eVBD 7.4.1.

    Relevance:  BCM57710/BCM57711/BCM57711E.

 6. Problem:    cfgadm -c configure causes targets to go offline.

    Change:     If a session is already offloaded, driver sends LS_RJT
                to Solaris FC Stack internally for a PRLI ELS generated.
                Driver now send LS_ACC internally to Solaris FC Stack
                for the PRLI sent on already offloaded connection.

    Introduced: Day one.

    Relevance:  All.

Enhancements:
-------------
 1. Request:    TX_Fault support for SFP+ Modules on 578xx boards.


Version 7.4.1 (April 30, 2012)
==============================

Fixes:
------
 1. Problem:    CQ61886 - bnxe driver under Solaris appears unable to process
                more than 65 incoming multicast channels

    Change:     Removed the 64 multicast address limit. On 57710 the limit
                still holds for exact matching. When more than 64 addresses
                are added on 57710 the "all multicast" rx mask is turned on.
                For all other devices exact matching will be used for all
                addresses and filtered based on a hash table.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    Solaris 10U10 - A Malformed RSCN frame is not dropped by the
                host, which eventually causes a system crash.

    Change:     Additional error checking introduced to find malformed RSCN
                packets. For such malformed RSCN payload, driver will send
                LS_RJT with LOGICAL ERROR as the reason code.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ61846 - Solaris11 10GBaseT ports lost link after ~50
                iterations of load/unload driver.

    Change:     When plumbing up an interface a race condition existed between
                link interrupts and the link periodic function. A mutex was
                missing around the call to the periodic function.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    bnxe shows FCoE related kstats on non-FCoE enabled
                AFEX functions.

    Change:     Properly register protocol related kstats based on
                licensing for the function.

    Introduced: 7.2.50 with single protocol personalities.

    Relevance:  AFEX.

 5. Problem:    CQ62845 - Solaris 10 U10, AFEX - FCP2 error recovery does
                not work correctly in certain cases.

    Change:     The fc4value returned in REC LS_ACC is used in case of
                write or read type of SCSI command to check recovery is
                needed. This check for Write has been modified, however for
                READ SCSI command the count exported by the firmware should
                be used instead of the fc4value returned in REC LS_ACC.

    Introduced: 7.2.50.

    Relevance:  Tape support.

Enhancements:
-------------
 1. Request:    CQ62637 - When SFP (1G) optic module is plugged in, adjust the
                link speed accordingly.

 2. Request:    Default number of L2 rings allocated in single function
                mode is four(4) and the default in multi-function mode
                is now one(1). This can be overridden in the bnxe.conf driver
                configuration file.


Version 7.2.52 (April 13, 2012)
===============================

Fixes:
------
 1. Problem:    CQ60448 - Rare case of no link due to missed interrupt may
                occur due to a race condition between acknowledging the IGU via
                the BAR and restoring the NIG interrupt mask via the GRC.
                A fix for this issue from 7.2.13 may be insufficient.

    Change:     Verify that the NIG attention was acknowledged specifically,
                otherwise if another interrupt was acknowledged on the same
                time, this check could have been missed.

    Introduced: Day 1.

    Relevance:  All.

 2. Problem:    CQ62581 - Solaris 10 U10 - System Crashes if it receives a
                FLOGI LS_ACC with "Desc List Length"= 0.

    Change:     The FLOGI LS_ACC FIP frame will be dropped if the Desc List
                Length is set to zero.

    Introduced: Day 1.

    Relevance:  All.

 3. Problem:    CQ62597 - Solaris 11 AFEX: Host shall retry Disc Sol and wait
                for unicast response to DS before sending FLOGI.

    Change:     If the A bit indicating Available for LOGIN is not set in
                unicast discovery advertisement, drop such unicast frame
                and retry the discovery solicitation.

    Introduced: Day 1.

    Relevance:  All.

 4. Problem:    CQ62601 - Solaris 10 U10 - Host does not restart FKAs
                transmission(when the 'D' bit goes back to 0) if the 'D'
                bit = 1 was first detected in the unicast discovery Adv.

    Change:     If the 'D" bit is set to 1 in Unicast discovery adv, the
                rolling timers  to send FKA's are not started at all.
                Therefore, no FKAs will be sent out if 'D' bit is set to 1.
                This change starts the rolling timers irrespective of the
                "D" bit value.

    Introduced: Day 1.

    Relevance:  All.


Version 7.2.51 (April 06, 2012)
===============================

Fixes:
------
 1. Problem:    CQ62066 - AFEX: Incorrect network segmentation between
                functions when both MAX_BW and BW_Weight are configured.

    Change:     Re-read MAX_BW and apply both min and max B/W. Eliminate
                redundant MCP B/W update.

    Introduced: AFEX day one (MCP B/W update since 7.0.3).

    Relevance:  Devices in AFEX mode.

 2. Problem:    (FW ETH) CQ62279 - Bandwidth Weight not working properly.

    Change:     Fix cmng init code - wrong parenthesis in fairness configuration.

    Introduced: eVBD 7.2.17, fixed in 7.2.18 and in this version.

    Relevance:  All.

 3. Problem:    (FW TOE) CQ62151 - Low performance in TX only scenarios with
                NAGLE algorithm disabled and drops in the network.

    Change:     Fix the relevant firmware flow.

    Introduced: eVBD 7.0.26

    Relevance:  All.

 4. Problem:    (FW TOE) CQ61551 - AFEX VMQ: eVBD queue does not report any
                rx_con_idx traffic.

    Change:     Fix the packet classification flow to consider AFEX default
                vlan as untagged packet.

    Introduced: AFEX day 1.

    Relevance:  Windows VMQ on AFEX devices.

 5. Problem:    CQ62463 - NCSI Get FCoE Statistics/Capabilities returns
                incorrect values.
                CQ62465 - NCSI Get Virtual Link returns FCoE driver state as
                being disabled.

    Change:     MCP was not being notified when the FCoE driver was bound and
                the FCoE capabilities were not being propagated.

    Introduced: Day 1.

    Relevance:  NCSI related statistics.

 6. Problem:    CQ62425 - Series of consecutive back to back unsolicited LOGOs
                results on failure to recover associated paths.

    Change:     Worked around the FC stack behavior to give up after receiving
                16 back to back LOGOs from target in 5 secs, by rejecting all
                LOGOs on that connection as soon as the first LOGO is taken for
                processing and a new session is established.

    Introduced: Day 1.

    Relevance:  Solaris 10 and Solaris 11.

 7. Problem:    CQ62507 - Solaris10 U10 - Host loses the target if it receives
                a burst of PRLOs from it.

    Change:     Worked around the FC stack behavior to give up after receiving
                16 back to back PRLOs from target in  5 secs, by rejecting all
                PRLOs on that connection as soon as the first PRLO is taken for
                processing and a new session is established.

    Introduced: Day 1.

    Relevance:  Solaris 10 and Solaris 11.

 8. Problem:    CQ62316 - RSCN stress test causes system panic.

    Change:     The LS_RJT response is sent for an unsolicited ELS using middle
                path frame transmission method. Before such frame transmission
                is complete,  the driver frees the packet prematurely by
                calling back Solaris FC stack. This callback frees the DMA
                mapping before the firmware could transmit the middle path
                frame. This cause firmware to stop on a hardware attention.

    Introduced: Day 1.

    Relevance:  Solaris 10 and Solaris 11.

Enhancements:
-------------
 1. Request:   Remove the delay workaround introduced to get BFS working using
               AFEX mode.

    Relevance: AFEX mode only.

 2. Request:   kmdb debug macro to search for a physical address active
               with firmware.

    Relevance: All.


Version 7.2.50 (March 28, 2012)
===============================

Fixes:
------
 1. Problem:    (FW ETH) CQ61551 - AFEX VMQ: eVBD queue does not report any
                rx_con_idx traffic.

    Change:     Fix the packet classification flow to consider AFEX default
                vlan as untagged packet.

    Introduced: AFEX day 1.

    Relevance:  Windows VMQ on AFEX devices.

 2. Problem:    There is the case when the driver prevents configuration of
                additional MAC address.

    Change:     Fix broken process of looking for an empty MAC entry.

    Introduced: 7.0.11.

    Relevance:  All.

 3. Problem:    CQ62319 - BFS fails after install.

    Change:     Return from attach is predicated upon doing the first PLOGI to
                a remote target if it exists or else it will wait for a fixed
                amount of time.

    Introduced: 7.2.14.

    Relevance:  Solaris x86.

 4. Problem:    CQ62247 - Solaris 10/11: FCP2 Tape: MSB and LSB are swapped in
                SRR sent from host.

    Change:     The swapping is done to reflect the appropriate rx_id.

    Introduced: 7.2.14.

    Relevance:  Solaris x86.

 5. Problem:    CQ62309 - Solaris 11: After reboot, NPIV port fails to start on
                second physical port.

    Change:     Return from attach is predicated upon doing the first PLOGI to
                a remote target if it exists or else it will wait for a fixed
                amount of time.

    Introduced: 7.2.14.

    Relevance:  Solaris 11 x86.

 6. Problem:    Slowpath completion code may run simultaneously on multiple
                processors during error-recovery.

    Change:     Check and re-invoke slowpath completion under lock. Change
                invocation logic as appropriate.

    Introduced: Initial error-recovery implementation.

    Relevance:  BCM57712/BCM578x0.

 7. Problem:    CQ61832, CQ62308 - Warnings seen in kernel log when running cnic
                test.

    Change:     Removed warning as it was logged in a legitimate flow.

    Introduced: 1.70.1.

    Relevance:  All.

 8. Problem:    CQ62295 - LED is still ON after the PHY got reset from fan
                failure test case.

    Change:     Added work around to configure 84833 PHY to 1Gbps and all
                LEDs off before putting it into RESET status for hardware
                limitation.

    Introduced: Day one.

    Relevance:  84833 PHY.

 9. Problem:    CQ62337 - Fan Failure test fails when stop the fan while
                passing traffic.

    Change:     Remove redundant assert.

    Introduced: Day one.

    Relevance:  Checked builds driver running on boards with a fan that fails
                while traffic is running.

Enhancements:
-------------

 1. Request:    Update error recovery flow wrt BCM578x0 specification.

    Relevance:  BCM578x0.

 2. Request:    CQ62368 - Enforce only single protocol personality (L2 or FCoE)
                on an AFEX VIF

    Relevance:  AFEX.


Version 7.2.14 (March 15, 2012)
===============================

Fixes:
------
 1. Problem:    CQ62104 - Intermittent link failure on 5771x + 8727.
                The "Unapproved module" flag had an indirect impact on the
                fix for CQ62046, which ended up in no link.

    Change:     Clear "Unapproved module" flag in case only "warning message"
                is required for such modules (common case).

    Introduced: 7.2.13.

    Relevance:  5771x + 8727.

 2. Problem:    Link may remain down due to unhandled remote fault clear
                handling.

    Change:     Enable the interrupt to enable remote-fault change attentions.

    Introduced: T7.2.

    Relevance:  57711+8727.

 3. Problem:    CQ62046 - No link on 57712 + 8727 designs in which the TX laser
                is controller via GPIO, after T6.0 drivers/MFW were loaded
                previously without reboot. On these designs the TX_LASER
                is enabled by logic AND between the PHY(through MDIO), and the
                GPIO. When old driver which doesn't support these designs is
                used, it disables the MDIO part, those the GPIO control has
                no affect de facto.

    Change:     Enable the TX_LASER on the PHY for those design to enable
                the GPIO control it.

    Introduced: 1.62.01.

    Relevance:  BCM8727 designs with GPIO controlling the TX laser.

 4. Problem:    CQ61983 - Page Fault (BSOD) when running "FCOE Certs Common
                Scenario Stress with Disk IO Test".

    Change:     Wait in the code intended to be milliseconds was actually
                running more than 10 seconds. This caused a page fault in BFS.
                Now the implementation changed to take really milliseconds.

    Introduced: Fix #7 in eVBD 7.2.13 exposed this.

    Relevance:  BFS flows with stress.

 5. Problem:    CQ62151 - Low performance in TX only scenarios with NAGLE
                algorithm disabled and drops in the network.

    Change:     Fix the relevant firmware flow.

    Introduced: Firmware version 7.0.25.

    Relevance:  All.

 6. Problem:   CQ62112 - Solaris 11 x86: system panic while doing cable pull
               and  executing fcinfo remote-port -p wwn -s

    Change:    This cable pull test caused many issues. All changes are
               documented below. Some of the ELS transmission routines
               were not checking whether link is down and fail such request
               to send ELS. This caused a panic. Also in fip state machine,
               race between port cleanup triggered because of link going down
               and processing a FIP VLINK response caused another panic. A
               Leadville timing issue has been worked around by delaying the
               LS_ACC for PLOGI to name server.

    Introduced:Day one.

    Relevance: Solaris 11.


Version 7.2.13 (March 10, 2012)
===============================
Internal FW 7.2.18

Fixes:
------
 1. Problem:    CQ61720 - MDC/MDIO access timeout message may appear on driver
                load due to missing clock setting before resetting the LED.

    Change:     Relocate setting the MDC/MDIO clock before resetting the LED
                since this operation involves access to the PHY registers.

    Introduced: 7.0.0.

    Relevance:  All.

 2. Problem:    CQ60448 - Rare case of no link due to missed interrupt may
                occur due to a race condition between acknowledging the IGU via
                the BAR and restoring the NIG interrupt mask via the GRC.

    Change:     Make sure that the IGU ack command is completed before
                restoring the NIG interrupt mask.

    Introduced: Day 1.

    Relevance:  57712/578xx.

 3. Problem:    FCoE interrupt is being allocated on E2/E3 functions that don't
                have proper licensing.

    Change:     Enforce licensing during interrupt allocation.

    Introduced: Day 1.

    Relevance:  All E2/E3.

 4. Problem:    CQ60042 - Flow control is not functional when OEM 57810s devices
                set to auto and evaluated via 1gb PT Module.

    Change:     Added code to handle CL37 AN when link is achieved via CL37 in
                578xx-KR.

    Introduced: T7.0.

    Relevance:  578xx-KR.

 5. Problem:    CQ61921 - Solaris SPARC - Tape: system faults on dropping
                fcp_xfer_rdy.

    Change:     When dropping xfer rdy, driver issues sequence cleanup request
                to firmware and firmware returns Ignored the sequence cleanup
                request status. If firmware returned ignored sequence
                cleanup request status, driver will not send SRR.
                Now driver sends SRR even in those cases.

    Introduced: T7.0

    Relevance:  Solaris 10 & Solaris 11 x86 and SPARC.

 6. Problem:    SRR has the wrong exchange ID in SPARC.

    Change:     Under SPARC, the endian-ness for the exchange ID sent in
                SRR payload changed.

    Introduced: Day one.

    Relevance:  Solaris 10 and 11 SPARC.

 7. Problem:    CQ62046 - No link on 57712 + 8727 designs in which the TX laser
                is controller via GPIO, after T6.0 drivers/MFW were loaded
                previously without reboot. This issue occurs since old drivers
                control the 8727 TX laser only by changing PHY register, and
                new drivers assumed this register had a default value, despite
                that this register is not actually controlling the TX laser in
                those designs. Note that this issue is not likely to occur
                because T6.0 driver don't support these kind of boards, and
                loading new drivers afterwards without reset, is not common
                practice.

    Change:     Check SW flag instead of querying the TX_DIS register.

    Introduced: T6.2.

    Relevance:  BCM8727 designs with GPIO controlling the TX laser.

 8. Problem:    CQ62061 - No link on the second port of 57711 + 84823, since
                PHY was left in reset.

    Change:     Unreset PHY on the second port.

    Introduced: T7.0.

    Relevance:  57711+84823.

 9. Problem:    CQ62069 - Solaris boot: Fails to boot from SAN with driver
                7.2.12 (bug introduced in 7.2.12, ok in 7.2.11)

    Change:     The wait for 'fp' driver to come online was conditioned on
                'fp' driver attach trigger state. Such conditional wait is
                not good for boot over SAN.

    Introduced: 7.2.12

    Relevance:  Solaris 10 and 11, x86.

10. Problem:    CQ62052 - system panics when link is flapped during NPIV port
                delete operation.

    Change:     There are race conditions seen between link down handler and
                NPIV port unbind handlers. Such race conditions are all removed.
                Specifically fcf structure is set to NULL in link down handler.
                Such structure is referenced in the NPIV port unbind handler.

    Introduced: Day one.

    Relevance:  Solaris 10 & 11 x86 and SPARC.

Enhancements:
-------------
 1. Request:    CQ61934 ? Update default Tx Equalization settings for
                SFP+ mode after analysis at all PVT corners.

    Relevance:  578xx SFP+.

 2. Request:    Added ability to turn off phy LSS remote fault detection. See
                link_remote_fault_detect in bnxe.conf.

    Relevance:  All cards with a phy that supports this feature.


Version 7.2.12 (March 1, 2012)
==============================
Internal FW 7.2.18

Fixes:
------
 1. Problem:    (FW ETH) When a TPA aggregation is open and a packet is
                accepted with timestamp OOO, the new packet begins a new
                aggregation instead of being indicated separately.

    Change:     Fix the relevant firmware flow.

    Introduced: Firmware version 7.2.14.

    Relevance:  Linux and Windows RSC.

 2. Problem:    (FW TOE/iSCSI) CQ61596 – There exists a corner case where
                firmware will send out only a single ‘pure ACK’ (TCP
                acknowledgment segment that has no payload) while 255 or more
                ‘pure ACKs’ and a ‘delayed ACK’ are queued and awaiting
                transmission. The other ACKs in the queue are sent with a
                payload of one byte and all have identical sequence number and
                valid TCP/IP checksum. When the very next TCP/IP packet is sent
                for the offloaded connection, the receiver will trim a single
                byte off the incoming packet because of the ACK received with
                payload of one byte.

    Change:     Fix the relevant firmware flow.

    Introduced: Exists for TOE (offloaded connections; T6.2 for iSCSI

    Relevance:  All BCM577xx devices with TOE and/or iSCSI offload enabled.
                This firmware issue does not exist for FCoE.

 3. Problem:    SPARC machine during attach hangs.

    Change:     Introduced a new CV to wait for 'fp' driver to come online
                for the support of BFS on intel Platforms. Because of a timing
                issue, that CV does not fire under certain scenarios in SPARC
                machine.Therefore, converted that cv_wait to cv_timedwait and
                also included a state check before wait on that condition
                variable is performed.

    Introduced: 7.2.7

    Relevance:  Solaris 10, 11 (SPARC, x86).


Version 7.2.11 (February 28, 2012)
==================================
Internal FW 7.2.17

Fixes:
------
 1. Problem:    CQ56716/CQ61090 - OEM product version and FCoE capabilities
                endianity is incorrect in shmem

    Change:     Fix endianity.

    Introduced: T7.2.

 2. Problem:    CQ61570 CQ61366 CQ61727 CQ61726- Machine BSOD after BFS
                or reboot test.

    Change:     While cleaning up after iSCSI boot and before loading the eVBD,
                Or while machine shutdown/hibernate, the NIG block was reset
                while the MFW was looking into a packet. This caused the MFW
                to hang and as a result caused the eVBD to hit a fatal error.
                The fix is to halt MFW traffic before resetting the NIG block.
                The is follow up of earlier change in eVBD 7.2.12 which
                was not completely correct.

    Introduced: Theoretically Day 1, practically more exposed in T7.0.

    Relevance:  All.

 3. Problem:    CQ61686 - Solaris 11 - SPARC -Host driver drops the FDISC
                LS_RJT frame.

    Change:     FIP FDISC LS_RJT should not be checked for existence mac
                address descriptor.

    Introduced: T7.0.

    Relevance:  All.

 4. Problem:    BFS using AFEX mode panics with mount root failure.

    Change:     Switch takes nearly 60 secs for link to come online
                under AFEX mode. This fix waits for 60 secs for all ports
                coming up in AFEX mode to declare the port state as
                online or offline.

    Introduced: Day one.

    Relevance:  AFEX mode BFS only.

 5. Problem:    Error handling for certain firmware errors doesnot initiate
                ABTS.

    Change:     Such error not handled properly are now handled initiating
                ABTS as designed.

    Introduced: Day one.

    Relevance:  All.

 6. Problem:    REC LS_ACC if it indicates EXCHANGE complete, still SRR is
                sent.

    Change:     Validating the LS_ACC ESTAT to identify exchange is complete.
                Based on the estat value validated, decision will be made to
                send SRR.

    Introduced: Day one.

    Relevance:  Tape support only.

 7. Problem:    CQ61680 - 57810 KR link may not come up in 1G after running
                loopback test.

    Change:     Restore the 10G KR force register to their default value before
                starting KR autoneg.

    Introduced: 7.0.0.

    Relevance:  57810-KR when connected to 1G only link partner.

 8. Problem:    CQ61030 - System will not boot after fan failure that lasts
                more 10 seconds.

    Change:     Fail driver init when signaled fan failure by MFW.

    Introduced: MFW 7.0.51 /MFW 7.2.0.

    Relevance:  578xx boards with fan.

 9. Problem:    CQ61628, CQ61381 - PFC frames are not honored, due to incorrect
                link attributes synchronization which happen following PMF
                migration or remote-fault detection.

    Change:     Update link_status with the PFC_ENABLE flag on link update in
                addition to the pfc update function.

    Introduced: 7.0.0.

    Relevance:  Multi-function(7.0.0) or SFP+ devices (7.2.6).

10. Problem :   CQ61340 - Solaris SPARC: Incoming unsolicited PRLO or LOGO
                sets HBA in fault mode.

    Change:     This address which created PCI-E fault is allocated by Solaris
                stack.Therefore currently it is worked around by double copying
                and sending the response for such unsolicited frames via L2
                path.

    Introduced: Day One.

    Relevance:  Solaris 11 (x86 and SPARC).

11. Problem:    CQ61160 - Solaris SPARC - I/O stress test hangs.

    Change:     The device causes PCI-E fault, which causes the Solaris fault
                management to retire the device. This causes the hang. The fix
                is same as done for CQ61340.

    Introduced: Day one.

    Relevance:  Solaris 11 (SPARC & x86).

12. Problem:    CQ61806 - Solaris 11 - Host does not distinguish between a CVL
                to ENODE and a CVL to VnPort.

    Change:     The assumption about how to identify the CVL to ENODE Vs
                VnPort has been rectified.

    Introduced: Day One.

    Relevance:  Solaris 11 (SPARC and x86).

13. Problem:    CQ61840 - Solaris 11 - Kernel panic during RSCN stress test

    Change:     Same fix as done for CQ 61160 and CQ 61340.

    Introduced: Day One.

    Relevance:  Solaris 11 (x86 and SPARC).

14. Problem:    CQ61820 - Solaris 11 - Host does not distinguish between a FIP
                LOGO to a NPIV VnPort and a Enode Port.

    Change:     The code to handle LOGO to a NPIV VnPort was completely
                missing. Added it as part of the fix for this CQ.

    Introduced: Day One.

    Relevance:  Solaris 11 (x86 and SPARC).

15. Problem:    The next pointer in session structure not set to NULL during
                release caused assert to fire in debug driver.

    Change:     Set the next pointer in session structure to NULL during
                release from session list.

    Introduced: Day one.

    Relevance:  Solaris 10 & 11 (x86 and SPARC).

Enhancements:
-------------
 1. Request:    Exposed operating MF mode to bnxef.

 2. Request:    New ::bnxe_mem kmdb dcmd used for finding virtual or physical
                addresses and the corresponding heap or dma allocations.

 3. Request:    Added documentation to the readme.txt file on how to remove
                the inbox driver from a fresh install of Solaris.

 4. Request:    New ::bnxef_dma_cookies dcmd used for dumping all dma cookie
                addresses.


Version 7.2.10 (February 21, 2012)
==================================
Internal FW 7.2.15

Fixes:
------
 1. Problem:    CQ61601 - The FW version for 84833 PHY was captured
                incorrectly. As a result, the major number is always
                reported as '1'.

    Change:     Fixed to read the correct field of the PHY register.

    Introduced: 7.2.4.

    Relevance:  84833 PHY.

 2. Problem:    CQ61570 CQ61366 - Machine halt after iSCSI boot or reboot test.

    Change:     While cleaning up after iSCSI boot and before loading the
                driver, Or while machine shutdown/hibernate, the NIG block
                was reset while the MFW was looking into a packet. This caused
                the MFW to hang and as a result caused the driver to hit a
                fatal error. The fix is to halt MFW traffic before resetting
                the NIG block.

    Introduced: Theoretically Day 1, practically more exposed in T7.0.

    Relevance:  All.

 3. Problem:    CQ61262 - NIV default vlan is not stripped if priority or CIF
                is different than 0.

    Change:     Change the decision to strip the NIV default vlan, to be
                based only on VLAN ID(The priority and CIF fields are ignored).

    Introduced: eVBD 7.2.0.

    Relevance:  NIV mode.

 4. Problem:    CQ61229 - During continuous reboot on NIV mode, get BSOD.

    Change:     Remove redundant call to the FW.

    Introduced: eVBD 7.2.9.

    Relevance:  NIV mode, eVBD checked builds.

 5. Problem:    CQ61441 - BCM57810 Function shows link down in NPAR-SD.

    Change:     Re-read DCC link state (as well as MF configuration) upon
                chip init.

    Introduced: eVBD 5.0.7 (link state/BW DCC Implementation).

    Relevance:  NPAR-SD, DCC.

 6. Problem:    CQ61378 (related) - Storage miniports will try to enumerate
                although there is no valid license burned on chip.

    Change:     Save and restore shmem license while BACS sends license IOCTL.

    Introduced: "Day 1".

    Relevance:  Boards with invalid licenses and or nvm cfg 187 is set.

 7. Problem:    CQ61408 - SOL/CKVM connectivity is lost after a BSOD.

    Change:     Disable pause frame while BSOD happen.

    Introduced: Day 1 of BCM5778x0.

    Relevance:  BCM5778x0.

 8. Problem:    CQ61090 - Can't see OEM product version as defined in registry
                in shmem.

    Change:     Fix bug in non x86 (I386) machines.

    Introduced: With this feature (eVBD 7.2.8).

    Relevance:  T7.2.

 9. Problem:    (FW ETH) Theoretical bug introduced by GRO acceleration
                changes where the bytes on place on SGE was still calculated
                from the SGE Buffer Size.

    Change:     Firmware fix to placement of data of SGEs.

    Introduced: Firmware version 7.2.14.

    Relevance:  BCM57711/BCM57712/BCM578xx.

10. Problem:    CQ61601 - The FW version for 84833 PHY was captured
                incorrectly. As a result, the major number is always
                reported as '1'.

    Change:     Fixed to read the correct field of the PHY register.

    Introduced: 7.2.4.

    Relevance:  84833 PHY.

11. Problem:    CQ61583 - When default priority (admin_default_priority) is
                greater than iSCSI or FCoE negotiated priority, iSCSI or FCoE
                tagged with default priority.

    Change:     ISCSI or FCoE is tagged with default PRI only when there isn't
                a negotiated priority for the suitable protocol.

    Introduced: T7.0.

    Relevance:  DCBX.

12. Problem:    CQ61570 CQ61366 - Machine BSOD after iSCSI boot or reboot test.

    Change:     While cleaning up after iSCSI boot and before loading the eVBD,
                Or while machine shutdown/hibernate, the NIG block was reset
                while the MFW was looking into a packet. This caused the MFW
                to hang and as a result caused the eVBD to hit a fatal error.
                The fix is to halt MFW traffic before resetting the NIG block.

    Introduced: Theoretically Day 1, practically more exposed in T7.0.

    Relevance:  All.

13. Problem:    CQ61632 - Solaris 11: With IO running, after disabling fcoe
                port, host keeps sending FKA's and fcinfo shows the port
                still online.

    Change:     The method used to disable fcoe port is  only available for
                developers and it is not publicly advertised. It should not
                be used like a supported feature. Readme.txt has been updated
                to deprecate this feature of using 'ndd' to set driver
                property 'fcoe_enable'.

    Introduced: When we deprecated 'brcmfcoeadm' tool.

    Relevance:  T7.2.

14. Problem:    CQ61641 - Solaris 11: system panic after creating 254 NPIV
                nodes and disable FCOE port.

    Change:     When no session exists and a transmission of LOGO ELS was
                attempted, driver sends LS_RJT back to Leadville without
                attempting to transmit the LOGO ELS request.

    Introduced: Day one.

    Relevance:  T7.2.

15. Problem:    During NPIV operation, CVL's are seen for an NPIV port.

    Change:     When releasing the port structure used as a remote port, the
                crucial fields are not zeroed out. This causes the driver
                code to go through wrong code paths causing wrong FIP Keep
                alive frames to be transmitted.

    Introduced: Day one.

    Relevance:  T7.2.

16. Problem:    During NPIV operation, generation of RSCN could cause panic.

    Change:     One of the timeouts, scheduled to generate fabric rscn to
                Leadville was not canceled during CVL handling.

    Introduced: Day one.

    Relevance:  T7.2.

17. Problem:    On rare cases, when link speed changes from 10G to 1G or lower,
                then remote fault may be reported.

    Change:     Check remote fault indication on link speed of 10G and above,
                since UMAC and EMAC do not support it.

    Relevance:  BCM578xx, BCM848x3, BCM872x.

    Introduced: 7.2.0.

18. Problem:    CQ61678 - System crash after running IO and pulling cable.
                Occurs since TX pipe is stalled due to missed XON indication
                (from MAC did to NIG). See related CQ56434 which fixed the
                problem for 57712.

    Change:     Force XON on NIG on link down/up.

    Introduced: T7.0.

    Relevance:  578xx.

19. Problem:    CQ61028 - No LED at 1G on 57712+8727 designs.

    Change:     Removed a logic error checking for a different PHY. And
                explicitly keep the link LED off when in MODE_LED_OFF mode.

    Introduced: T7.0.

    Relevance:  LED manipulation for 54616/18 and 8727 PHYs.

Enhancements:
-------------
 1. Request:    CQ58557 - Allow reading the external PHY FW from any driver
                instance even if it is not loaded since the value is stored in
                shared memory and does not require any locking or any special
                access.

 2. Request:    CQ61395 - Add 4-part ID for OEM.

 3. Request:    link read_status updates link partner's capabilities (fc,
                speed) whenever autoneg was used.

    Relevance:  All boards with phys that support autoneg.

 4. Request:    CQ60726 - INT3 on panic (for specific OEM) with SMI handler.

 5. Request:    CQ61484 - In NIV mode ,chimney should be disabled.

    Relevance:  NIV mode.

 6. Request:    Removed 32-bit drivers from Solaris 11 x86 package.


Version 7.2.9 (Feb 12, 2012)
============================

Fixes:
------
 1. Problem:    CQ61401 - Solaris driver does not use FCoE wwn port prefix,
                instead uses node prefix of Ensing Ro

    Change:     Used Port WWN and Node WWN are now properly based on the
                hardware configuration and pulled from shared memory.

    Introduced: Always existed.

    Relevance:  Solaris FCoE.

 2. Problem:    CQ61441 - 57810: Function shows link down in NPAR-SD.

    Change:     Re-read DCC link state (as well as MF configuration) upon
                chip init.

    Introduced: eVBD 5.0.7 (link state/BW DCC Implementation).

    Relevance:  NPAR-SD, DCC.

 3. Problem:    CQ61467 - Solaris 11 - SUT Kernel panics/ debug breaks when L2
                traffic and FCoE traffic is run concurrently in NPAR mode

    Change:     With dynamic polling introduced with GLDv3 in Solaris 11, we
                can't allow the stack to turn off/on interrupts on a ring
                that is sharing L2 and FCoE traffic.

    Introduced: Solaris 11.

    Relevance:  FCoE on Solaris 11 in NPAR mode.

 4. Problem:    CQ61472 - No flogi after DA with 'A' bit not set followed by DA
                with 'A' bit set.

    Change:     The FIP state machine does not handle scenarios when A bit is
                changed from not set to set. Now the driver forces a port
                bringup, when the A bit transitions from not set to set in a DA
                sent by the switch.

    Introduced: Day one.

    Relevance:  FCOE on SPARC and x86.

 5. Problem:    CQ61533 - No reponse to incoming N_port LOGO on un-established
                session.

    Change:     The driver sends LS_RJT as response for such LOGO ELS with
                reason code "unable perform command request".

    Introduced: Day one

    Relevance:  FCOE on SPARC and x86.

 6. Problem:    CQ61394 - Initiator sends LS_RJT instead of BA_RJT in response
                to ABTS for an unknown exchange.

    Change:     Sending LS_RJT for a BLS (like ABTS) is illegal as per
                FC standards. However, as per the driver design, driver does
                not want to support unsolicited BLS coming from target.
                Therefore, BLS (ABTS) sent in this case will not be responded.

    Introduced: Day one.

    Relevance:  FCoE on SPARC and x86.

 7. Problem:    REC and ABTS not getting rx_id to be used from firmware
                correctly under SPARC platforms.

    Change:     The firmware always maintains the task context with rx_id in
                little endian format. On SPARC system, rx_id read from
                task context require a byte swapping when sent on wire.

    Introduced: Day one.

    Relevance:  FCoE on SPARC.

 8. Problem:    fcoe_conndb structure as published by firmware in the hsi file
                maintains two different formats for big endian and little
                endian host processors. It should only export little endian
                format, as that is the native endian-ness of the STROMS.

    Change:     Solaris is the only OS to support 577xx and 578xx parts
                in both big endian and little endian environments. In big
                endian environment, the prod index field in this structure is
                not updated correctly because of the way that field is exported
                in the big endian machine. Only little endian format of this
                structure is what need to be exported by firmware. Changed the
                structure definition to represent the little endian nature of
                the STROMS only for solaris driver integration.

    Introduced: Day one.

    Relevance:  FCoE SPARC.

 9. Problem:    nicdrv load_unload test caused a panic.

    Change:     There was a race condition when bringing up and tearing down
                the taskqs where a job could be scheduled when a taskq did
                not exist.

    Introduced: Day one.

    Relevance:  bnxe.

10. Problem:    (FW ETH) Theoretical bug introduced by GRO acceleration
                changes where the bytes on place on SGE was still calculated
                from the SGE Buffer Size.

    Change:     Firmware fix to placement of data of SGEs.

    Introduced: Firmware version 7.2.14.

    Relevance:  BCM57711/BCM57712/BCM578xx.

Enhancements
------------
 1. Request:    link read_status updates link partner's capabilities (fc,
                speed) whenever autoneg was used.

    Relevance:  All boards with phys that support autoneg.

 2. Request:    CQ58557 - Allow reading the external PHY FW from any driver
                instance even if it is not loaded since the value is stored in
                shared memory and does not require any locking or any special
                access.

 3. Request:    Best effort when allocating MSIX interrupts for rings. Decrease
                number of rings until interrupt allocation is successful. If
                zero is reached only then revert to fixed level interrupts.

 4. Request:    Ensure all BAR register accesses are performed via the ddi_put
                and ddi_get routines to guarantee data consistency between the
                hardware and driver.


Version 7.2.8 (Feb 5, 2012)
===========================

  Fixes
  -----

  1. Problem: CQ61377 - Solaris 10u10: Some unsupported ELS are responded
              with LS_RJT instead of no response
     Change:  Implemented handler for CSU, FAN, ESTC, TEST ELSes.

  2. Problem: CQ61274 - Solaris tape operation: Dropping XFER_RDY and REC
              ELS causes system to crash.
     Change:  Reference count mechanism used to solve some other problem caused
              this panic. The original task pointer which initiated the write
              request, was not initialized properly in multiple places where
              decrement reference count routine was called.

  3. Problem: Solaris 10 Update 10, Boot over SAN failed with mount root
              panic.
     Change:  The delay introduced last time to handle this condition is not
              enough under platforms,  therefore the delay has been replaced
              with an cv_wait mechanism (i.e. until the fp port is created and
              online the attach of bnxef will not return).

  4. Problem: Fw stats collection methods not correct.
     Change:  Issuing of firmware stats API was done from timeout context,
              Changed that to be done from task context. Also the stats DMA
              buffer allocated, ddi_dma_sync routine was not used to synchronize
              the cache both when issuing the request and while reading the
              buffer filled with stats information.

  5. Problem: L2 does not work on SPARC over NIV interfaces
     Change:  NIV configuration with the firmware was failing because of some
              missing endian swaps and other configuration issues.

  Enhancements
  ------------

  1. Change:  Firmware 7.2.14
     Impact:  None


Version 7.2.7 (Jan 27, 2012)
============================

  Fixes
  -----

  1. Problem: CQ61230 - Solaris 11 - System falls back to debugger during tape
              backup
     Change:  An assert was hit from of an invalid decrement of a reference
              count on a task structure.

  2. Problem: CQ60398 - Solaris 10u10 - Deleting FCOE port while receiving
              RSCN causes system to hang.
     Change:  Changed to not transport SCSI commands when the unload of the
              driver request has already succeeded. Additionally, extra checks
              have been included if there is any command under transport then
              the unload request will fail.

  3. Problem: CQ61194 - Host tries to enumerate FCoE on a non-FCoE function in
              NPAR mode
     Change:  The protocol licensing check was not being performed when bnxe
              start FCoE during driver load.  The FCoE start/stop code paths
              have been unified and the proper checks are now made.

  4. Problem: CQ61166 - Expose DCBX frame stats (counter) via kstat interface
     Change:  DCBX and PFC frames rx/tx stats have been added to the 'dcbx'
              kstat group.

  Enhancements
  ------------

  1. Change:  brcmdcbxinfo has been removed. All dcb/dcbx related information
              is now accessible via the 'dcbx' kstat group.
     Impact:  None

  2. Change:  brcmfcoeadm has been removed. FCoE is already started
              automatically by default. It can also be dynamically started and
              stopped via the 'fcoe_enable' property in bnxe using ndd (1 =
              enable/start, 0 = disable/stop). Additionally, new stats added to
              the 'fcoe' kstat group used to help match FCoE paths to bnxe#.
              # ndd -set /dev/bnxe0 fcoe_enable [ 1 | 0 ]
     Impact:  None


Version 7.2.6 (Jan 20, 2012)
============================

  Fixes
  -----

  1. Problem: CQ60854 - Solaris 11 - NPIV, Host failed to re-create all NPIV
              nodes after shut/no shut on switch port.
     Change:  There were edge cases when the FCF is not identified and
              driver tried to FKA for certain configured ports. A check has
              been added to check for the condition and drop FKA to be sent.

  2. Problem: During delete-npiv-port command, using Brocade switch, we
              see unwanted CVLs generated by switch.
     Change:  Brocade switch does not respond to LOGO sent to Fabric
              controller. This ELS takes 20 secs to timeout and during that
              time if a FKA is received by the switch, it sends CVL to close
              all Virtual connections.

  3. Problem: During the delete-fcoe-port sometimes unsolicited buffers are not
              freed.
     Change:  There are scenarios where unsolicited buffers are freed before it
              is released back to FCA. FCA checks in the free routine if a
              buffer is released by Leadville before a free request is handled.

  Enhancements
  ------------

  1. Change:  brcmfcoeadm is no longer required for starting FCoE. FCoE/bnxef
              is now started automatically by bnxe upon driver load.
     Impact:  All FCoE licensed/enabled ports will trigger FCoE to start.
              brcmfcoeadm will only be part of the out-of-box drivers and not
              be integrated by Oracle into Solaris.


Version 7.2.5 (Jan 15, 2012)
============================

  Fixes
  -----

  1. Problem: CQ60844 - Solaris 11 - ADISC is not getting accepted when NPIV
              nodes are already zoned in before they are created.
     Change:  ADISC received with L2 Path was always rejected and now it's
              forwarded to Leadville for response.

  2. Problem: CQ60815 - Solaris 10/11 - System Crashes if the host driver
              receives a FIP VLAN reply frame without a VLAN ID descriptor.
     Change:  A check has been included to identify if the VLAN ID descriptor
              missing.  Frame without a VLAN ID descriptor are now dropped.

  3. Problem: CQ60825 - Solaris 11 - Can't delete NPIV nodes after 255 NPIV
              nodes have been created.
     Change:  Work around a Solaris HBA API issue by restricting the max NPIV
              nodes that can be created to 254.

  4. Problem: CQ60854 - Solaris 11 - NPIV, Host failed to re-create all NPIV
              nodes after shut/no shut on switch port.
     Change:  Fixed the port identification method to identify the port which
              need to be re-logged in.

  5. Problem: NPIV ports created are not persistent across reboots.
     Change:  Calling the NPIV service start method from the start method of
              QLogic's fcoe port service start method.

  Enhancements
  ------------

  1. Change:  Added support for OCBB stats updates
     Impact:  None



Version 7.2.4 (Jan 06, 2012)
============================

  Fixes
  -----

  1. Problem: CQ60541 - DCBX MFW: The missing PFC TLV on peer should be treated
              as a feature mis-match/error.
     Change:  Missing TLVs are now treated as an error and the feature is no
              longer configured in that case.

  2. Problem: CQ60743 - Solaris 11 - Host driver does not create bnxe nodes for
              57810 ports when 57712 and 57810 co-exist in a System
     Change:  This was due to a conflict with the inbox bnxe driver. The
              BRCMbnxe package installation scripts were not performing the
              add_drv so any new PCI IDs were not getting added to the
              /etc/driver_aliases file. The BRCMbnxe checkinstall script has
              been enhanced to catch this case, abort the installation, and
              clearly detail the error to the admin.

  3. Problem: CQ60250 - Solaris 10u10 - Host does not discard Disc Adv frames
              with FKA_ADV_VALUE > 90000
     Change:  Now a check for minimum value of 250 and maximum value of 90000
              implemented to accept or discard this frame based on the FKA
              value.

  4. Problem: CQ60280 - Solaris 10u10 - Host does not discard a malformed FIP
              CVL frame with a missing MAC address descriptor.
     Change:  A check to validate existence of mandatory mac address descriptor
              and mandatory name descriptor included.

  5. Problem: CQ60434 - Solaris 10u10 - Tape Case: SUT issues REC and then SRR
              to a delayed XFER RDY.
     Change:  When such XFER RDY crosses while REC is being sent, the Sequence
              cleanup request to firmware returns ignore cleanup status. This
              status was not checked during cleanup completion causing this
              problem.

  6. Problem: CQ60436 - Solaris 10u10 - Tape case: SUT crashes and then reboots
              if it receives a delayed Rd data frame.
     Change:  When REC recovery is in progress, if the I/O completes, the host
              is not aware such completion has happened. This caused a wrong
              packet pointer to be dereferenced after being freed. This has
              been fixed using a reference count mechanism implemented only for
              Tape support.

  7. Problem: CQ60526 - Driver does not retry RPN_ID, RNN_ID, RCS_ID, RFT_ID,
              RPT_ID, GA_NXT, GID_PN.
     Change:  The return value when a timeout happens for the dropped FC-CT
              request is not correct for Leadville to retry. Therefore
              changed the return value so that those will be retried based
              on the retries configured in Leadville stack.

  8. Problem: CQ60665 - Solaris 10u10 - Host discards the VLAN discovery reply
              frame which has a non critical desc.
     Change:  A wrong check about the total Desc length was included which
              in a premature return from this handler without going through the
              code which will handle this situation. The premature return
              removed.

  9. Problem: CQ60356 - Solaris 10u10 - Host discards the VLAN notification
              frame with multiple VLAN ID descriptor.
     Change:  Now the duplicate descriptor is removed only for VLAN ID
              descriptor.

 10. Problem: CQ60727 - Solaris 11 - It takes about 4 mins to create one NPIV
              node.
     Change:  When the FDISC LS_ACC is received a status flag is set which is
              not checked correctly thereby causing timeout all the time.

 11. Problem: Boot from SAN required 'fp' node creation to be synchronous.
     Change:  Now waiting until the node is created in the bnxef_attach routine
              based on the 'force_fcoe_load' flag set by bnxe driver.

 12. Problem: Session Cleanup PCI-E error in SPARC paltforms.
     Change:  A deprecated DMA API was used in all session DMA resource free
              routines. This caused this problem every time RSCN is received in
              SPARC platform.

 13. Problem: CQ60753 - Solaris 11 - Host driver fails to enumerate some of
              the bnxe ports intermittently after doing 'reboot' in the OS.
     Change:  Fast reboot quiesce is not yet supported for FCoE. As a
              temporary solution bnxe no longer allows quiesce when bnxef is
              bound on the interface.

  Enhancements
  ------------

  1. Change:  FCoE now supported on SPARC.
     Impact:  None

  2. Change:  Preliminary support for Boot from SAN. Requires the Solaris
              miniroot to be configured with the 'fcoe_force_load' config var
              enabled in bnxe.conf.
     Impact:  None

  3. Change:  Firmware 7.2.12
     Impact:  None


Version 7.2.3 (Dec 8, 2011)
===========================

  Fixes
  -----

  1. Problem: CQ60211 - System crashes and then reboots if it received FIP LOGO
              LS_ACC with bad FPMA in MAC address desc.
     Change:  We use the FPMA MAC address received to locate the local port
              structure. If the MAC address is bad, the lport returned will be
              NULL, which was not checked and the frame dropped.

  2. Problem: CQ59778 - Solaris host does not respond to unsolicited PRLO
     Change:  Wrongly the LS_ACC for PRLO which is in pending Queue is not
              cleaned up. Therefore subsequent PLOGI does not complete the
              session cleanup and waits for the pending command to complete.
              This causes nothing to be sent out on that session subsequently.

  3. Problem: CQ59790 - Host does not set image pair established bit in
              unsolicited PRLI reply.
     Change:  It is now set correctly.

  4. Problem: PCI-E FATAL error seen whenever RSCN is received in SPARC
              platform.
     Change:  The CONFQ PBL and RQ PBL were not getting byte swapped. This
              caused the PCI-E FATAL error when the firmware initiated DMA
              to/from a bogus addresses.

  5. Problem: The bnxe mdb module causes a hard hang on x86 and frequent
              exceptions on sparc under kmdb (mdb -K).
     Change:  The ::bnxe dcmd was using a stack size that was too big and
              corrupting the return address inside kmdb. The cached um_device_t
              data is now placed in memory allocated via mdb_alloc().

  Enhancements
  ------------

  1. Change:  Firmware 7.2.10
     Impact:  None


Version 7.2.2 (Dec 5, 2011)
===========================

  Fixes
  -----

  1. Problem: The FCoE service manifest has errors during import.
     Change:  On Solaris 11 the package postinstall script did not import the
              xml manifest correctly and now uses the manifest-import service.
              Additionally for both Solaris 10 and 11 the FCoE service is now
              started correctly during boot using an SMF method and not the
              legacy /etc/rc3.d.

  Enhancements
  ------------

  1. Change:  Added support for FCoE on Solaris 11 (x86 and SPARC).
     Impact:  None

  2. Change:  Added Support for FCoE on Solaris 10u9 and 10u10 (SPARC).
     Impact:  None

  3. Change:  Firmware 7.2.9
     Impact:  None


Version 7.2.1 (Nov 14, 2011)
============================

  Enhancements
  ------------

  1. Change:  Added support for L2 on Solaris 11 (x86 and SPARC).
     Impact:  None

  2. Change:  Added support for FCoE on E3 (x86).
     Impact:  None

  3. Change:  Firmware 7.2.7
     Impact:  None


Version 7.0.20 (Nov 9, 2011)
============================

  Fixes
  -----

  1. Problem: CQ59637 - Solaris: Fabric name change causes login failure
     Change:  The task structures are getting leaked when SCSI I/O is
              transported by Leadville during the time implicit logout is being
              handled. This causes, FLOGI sent by Leadville to fail, causing
              the port to be offline because it was unable to identify the
              topology. Also added fix to remove memory leak under another
              condition where if the physical port state is offline, when SCSI
              I/O is transported from Leadville.


Version 7.0.19 (Nov 3, 2011)
============================

  Fixes
  -----

  1. Problem: CQ59554 - Stuck I/O while running MLTT with long cable pulls.
     Change:  Task structures are getting depleted and causing a deadlock.
              Task allocation for RRQ has been changed to be similar to
              Leadville based SCSI and ELS task allocation. This allows
              half of configured tasks available for recovery (ABTS and
              Cleanup tasks).

  2. Problem: Cont00059552 - Kernel panic caused by DbgBreak message in bnxe
              driver
     Cause:   When Tx buffers for a ring are depleted and thereafter any
              outstanding buffers recycled, the bnxe driver notifies the
              upper layer that buffers are now available.  This upcall was
              not implemented by the FCoE driver and a DbgBreak log message
              was hit. This is not an issue and the DbgBreak has been removed.


Version 7.0.18 (Oct 28, 2011)
=============================

  Fixes
  -----

  1. Problem: CQ59493 - Kernel panic on long cable pull from target
     Change:  The RRQ task was not included in pending list and
              the target reset handling had some corner cases which
              were not covered properly.


Version 7.0.17 (Oct 24, 2011)
=============================

  Fixes
  -----

  1. Problem: CQ58705 - Flow control does not function on fibre connections
              when alternative reporting mode is used.
     Change:  Include case related to fibre link, where connection is not
              auto-negotiated.

  2. Problem: CQ58884 - possible link issues after unload/load of 1G copper
              ports.
     Change:  Close RX NIG in delay time after resetting the MAC.

  3. Problem: CQ58990 - KR link occasionally comes up at 1G when 10G is
              expected. This is exposed only when a previous software entity
              (e.g. MFW, prior to OS driver loading up) that owns the KR PHY
              left it at 1G.
     Change:  Keep auto-neg disabled while configuring the capbility
              advertisement. Re-enable it after configuration is done.


Version 7.0.16 (Oct 14, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00059253 - System Crashes when Error indication sent
              for RRQ was not handled correctly by the bnxef driver
     Cause:   The RRQ which is sent for error recovery of SCSI cmds/FCP frame
              errors needs special handling and it cannot again take up the
              same recovery as done for SCSI I/O.

  Enhancements
  ------------

  1. Change:  Firmware 7.0.29
     Impact:  None


Version 7.0.15 (Oct 6, 2011)
============================

  Fixes
  -----

  1. Problem: Cont00058687 - I/O errors and Kernel panic during RSCN Stress
     Cause:   First, The ramrod posting to FCoE firmware was not serialized as
              per the firmware design for the stats and session disable
              ramrods.  Second, I/O errors are caused because of Leadville
              stopping I/Os while processing RSCN. A workaround has been
              implemented similar to how other Solaris fc drivers have
              handled this condition.

  2. Problem: nicdrv test10 causes a panic
     Cause:   There was another race condition exposed by nicdrv test10 when
              destroying the mutex for a task queue while performing rapid
              load/unloads of the driver.

  Enhancements
  ------------

  1. Change:  Added support for Solaris 10 Update 10.
     Impact:  None.

  2. Change:  Added new debug macro/dcmd in bnxef.
     Imapct:  None


Version 7.0.14 (Sep 22, 2011)
=============================

  Enhancements
  ------------

  1. Change:  Added a new man page for brcmdcbxinfo.
     Impact:  None

  2. Change:  Updated the bnxe man page.
     Impact:  None

  3. Change:  Updated the readme.txt with many more details.
     Impact:  None


Version 7.0.13 (Sep 15, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00058406 - Extra Dword Stuffed in every FIP Frame payload.
     Cause:   Some of the frames which are smaller than 64 bytes will be
              stuffed with extra DWords as padding to adhere to Ethernet Frame
              size requirement. However, for bigger frames like FIP FLOGI and
              FIP LOGO had extra few bytes because of structure padding. This
              specific structure cannot be packed.

  2. Problem: When PFC is not enabled, there are lots of timeouts seen which
              causes too many SCSI resets to be generated by Solaris disk
              driver.
     Cause:   FC_PKT_TIMEOUT retuned caused CMD_TIMEOUT to be generated to
              SCSI disk driver layer which causes SCSI target resets to
              targets.

  3. Problem: Handling of SCSI target reset when issued as Polled mode command
              is not correct.
     Cause:   When polled mode command is issued, the pkt_completion routine
              was not called under some corner condition.

  Enhancements
  ------------

  1. Change:  brcmdcbxinfo: added display of DCBX sync / no-sync status; added
              display of PFC, Priority Tagging, and ETS operational status;
              simplified output, and added -a parameter to invoke full display
              of all advanced parameters
     Impact:  None


Version 7.0.12 (Sep 7, 2011)
============================

  Fixes
  -----

  1. Problem: Cont00058309 - "fcinfo hba-port" shows "Current Speed: Not
              Established" instead of "10G"
     Cause:   When the link goes down and comes back the Leadville is not
              updated with current speed.

  2. Problem: Cont00058350 - Solaris: Host driver displays incorrect CRC
              count values.
     Cause:   The stats pulled from firmware is incremental value and it is
              not clear on read as wrongly assumed.

  3. Problem: nicdrv test10 causes a panic
     Cause:   There was a race condition when tearing down the task queue
              while performing rapid load/unloads of the driver.  Partial
              completion for Cont00058192 - E3 B0 Solaris 10up9 Some Nictest
              test cases failed.

  Enhancements
  ------------

  1. Change:  Firmware 7.0.27
     Impact:  None


Version 7.0.11 (Sep 1, 2011)
============================

  Fixes
  -----

  1. Problem: When stress test was run and you do shut/no shut, rediscovery is
              starved because task resource not available.
     Cause:   The way the task binding to a Leadville packet is done is causing
              this resource crunch.

  2. Problem: Stress test causes I/O errors by fcp_watch thread in Leadville.
     Cause:   Because of lack of resources we do not accept packets for
              transporting. This causes packets to linger in Leadville queues
              for long time causing the fcp_watch thread to flag that packet as
              timed-out packet. When it times out the same packet more than 3
              times the I/O fails.

  3. Problem: Do not arm CQ index when offloading.
     Cause:   Linux driver hit this condition and found based on discussions
              with firmware engineers. Implemented the same fix for Solaris.

  4. Problem: Cont00057664 - Modify Solaris bnxe to ignore option 105 nvram
              setting and disable DCBX for all E3 designs
     Cause:   DCBX is now no longer performed on E3 devices.

  5. Problem: nicdrv test05 fails with some read-write GLD properties
     Cause:   test05 now passes.  Partial completion for Cont00058192 - E3 B0
              Solaris 10up9 Some Nictest test cases failed.


Version 7.0.10 (Aug 25, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00057985 - Stress test using different IO size, noise pattern
              fails on SYMMETRIX devices (single path).
     Cause:   The commands generated under stressful condition linger in
              Leadville stack for long period, this causes Leadville to timeout
              commands and eventually the application fails.

  2. Problem: Cont00056992 - Coexistence with Qlogic CNA caused unsupported
              command to go through our CNA.
     Cause:   The Qlogic SAN surfer, when installed, probes all existing CNA
              in the system by sending pass-thru FC-CT command which we do not
              support.  Driver now returns a proper failure.


Version 7.0.9 (Aug 21, 2011)
============================

  Fixes
  -----

  1. Problem: Cont00057714 - Kernel panic with Remote Initiator's repeated
              login-logout inti DUT.
     Cause:   This problem is seen only with Windows Host. The unsolicited
              PLOGI response fix recently done did not have proper PWWN and
              NWWN in the LS_ACC payload, which caused subsequent PRLI to be
              rejected.

  2. Problem: Cont00057571 - Host driver does not honor 'Image Pair
              Established' bit in PRLI LS_ACC
     Cause:   Now the Image Pair Established bit is validated and retries
              allowed when that bit is zero.

  3. Problem: Cont00057646 - Host honors 'D' bit only in Solicitation reply and
              not in Disc. Adv from FCF.
     Cause:   An incorrect assumption was originally in place that when 'D' bit
              is administratively changed on the switch it will uninstantiate
              all virtual links and provide an opportunity to re-establish the
              link.

  4. Problem: Cont00057925 - Solaris fcinfo does not show serial number,
              FCode/BIOS version, model number
     Cause:   This information was never exposed properly via the FCA Port
              attributes to Leadville.


  5. Problem: Cont00057158 - brcmdcbxinfo reports wrong status in local MIB for
              PFC disabled mode
     Cause:   The information provided from brcmdcbxinfo was not coherent
              enough to understand the current negotiation state. The tool has
              been revamped and now includes two different output modes.  A
              basic one which clearly displays the negotiation status and
              priority app table and an advanced one which displays the more
              detailed lower level settings.


Version 7.0.8 (Aug 8, 2011)
===========================

  Enhancements
  ------------

  1. Change:  Exposed autogrEEEn configuration via bnxe.conf and ndd/dladm
              for devices that support it.
     Impact:  None

  2. Change:  The noxmtbuf statistic in the kstat mac group is now updated
              properly when there are transmit failures due to no buffers.
     Impact:  None


Version 7.0.7 (Aug 1, 2011)
===========================

  Fixes
  -----

  1. Problem: Cont00057209 - E2 Solaris Eth Link will not come up when
              connected to a switch and DCB is administratively disabled.
     Cause:   The LSS status checking on 57712 was preventing the link
              from coming up.  Now LSS errors are checked and reported after
              a period of time in order for the link to settle since the
              previous errors seen were invalid.

  2. Problem: brcmdcbxinfo returning an invalid ioctl error
     Cause:   When DCB is disabled the error return code was invalid
              which didn't make it clear to the user.  Now not supported
              is returned and the proper error message is printed by
              brcmdcbxinfo.

  3. Problem: SPARC is allocating an MSIX interrupt for FCoE.
     Cause:   While FCoE is not enumerated on SPARC the bnxe driver
              was still allocating the interrupt for the FCoE ring.

  Enhancements
  ------------

  1. Change:  Firmware 7.0.26
     Impact:  None


Version 7.0.6 (July 14, 2011)
=============================

  Fixes
  -----

  1. Problem: SPARC not able to receive traffic.
     Cause:   ECORE uses unsigned longs for bit level operations and
              the defined atomic ops only worked on 32-bit values. New
              atomic ops have been added that handle long types.

  2. Problem: 57712 fails to get link when connected to a switch.
     Cause:   During the initial link up events there was a remnant LSS
              error condition which administratively forced the link down.
              The LSS error quickly goes away but the link was not
              rechecked. Link condition is now polled every second.

  3. Problem: FCoE is being enumerated on 57711 devices.
              Changed to only enumerate FCoE for 57712 devices.

  Enhancements
  ------------

  1. Change:  Firmware 7.0.24
     Impact:  None


Version 7.0.5 (July 8, 2011)
============================

  Fixes
  -----

  1. Problem: Cont00055093 - Large drop after continuous running.
     Cause:   The cause is interrupt service routine was ordering the slow
              completions and fast path completion, this caused latency for
              fast path completion as it has to wait until slow path commands
              completions are handled.

  2. Problem: Cont00056742 - Tape device fails and does not recover after link
              is disconnected and reconnected while running tape backup.
     Cause:   Leadvile stack does not allow devices to be re-logged in if the
              retry is enabled.

  3. Problem: Cont00056772 - Solaris: Host sends LS_ACC to malformed PRLO
              frame and logs out from the session.
     Cause:   Received payload size was not validated.

  4. Problem: Cont00056541 - Solaris: The host does not respond to unsolicited
              PLOGI.
     Cause:   The Leadville stack under certain conditions does not respond to
              unsolcited PLOGI. Also there were delay's in my handling which
              caused other host to timeout and generate ABTS.

  5. Problem: Cont00056614 - Solaris: Host reboots if it receives a FCoE LOGO
              from a target while running I/O.
     Cause:   The frame was malformed, this caused the driver to copy more
              payload than what it could accomadate.

  Enhancements
  ------------

  1. Change:  Firmware 7.0.23
     Impact:  None


Version 7.0.4 (June 28, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00056576 - Solaris: Host does not check S_ID in a FIP LOGO
              originated by FCF and logs out Fabric.
     Cause:   The S_ID was not checked to be from fabric controller.

  2. Problem: Cont00056527 - Solaris: Host does not drop malformed ELS
              response frame (SCR, PLOGI, PRLI, etc.)
     Cause:   The size of payload received was not compared to expected size.

  3. Problem: Cont00056578 - Solaris Host does not use Fabric assigned MAC
              address Desc. of a FIP LOGO.
     Cause:   Not coded Correctly.

  4. Probem:  Cont00056541 - Solaris: The host does not respond to Unsolicited
              PLOGI.
     Cause:   The session cleanup was not exiting correctly as one PLOGI
              ELS command was stuck, this caused all the unsolicited buffers
              available to deplete causing the new unsolicited PLOGI to be
              dropped.


Version 7.0.3 (June 21, 2011)
=============================

  Fixes
  -----

  1. Problem: Hang seen on HP Proliant machine.
     Cause:   Deadlock caused because of the way locks are used in nested
              fashion when offloading the connection.

  Enhancements
  ------------

  1. Change:  Write SGE caching enabled.
     Impact:  None


Version 7.0.2 (June 12, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00055990 - Solaris: I/O stops for 90 secs after target zone
              out followed by immediate zone in.
     Cause:   The Leadville stack waits for all the I/Os to drain when zone-out
              happens. However, before RSCN is generated, LOGO is sent by the
              target which was not handled correctly and caused some extra
              delay.

  2. Problem: Cont00056105 - Solaris: It takes more than an hour to install
              PowerPath 5.3P01 with 256 VMAX LUNs already zoned-in.
     Cause:   The number of scatter gather list entries requested in the DMA
              attribute structure was 16, that caused DMA allocation to fail.

  3. Problem: Cont00055406 - E3 SOL Eth No link on NPAR configured on port port
              with 7.0.1 (Sol10up9)
     Cause:   Initial phy link settings were not obeying the link configuration
              defaults from nvram.

  Enhancements:
  -------------

  1. Change:  Firmware 7.0.20
     Impact:  None

  Known Issues
  ------------

  1. Problem: This release is x86 only and does not support SPARC.
     Cause:   n/a


Version 7.0.1 (April 1, 2011)
=============================

  Enhancement
  -----------

  1. Change:  Added support for 578xx.
     Impact:  None

  2. Change:  Firmware 7.0.14
     Impact:  None

  Known Issues
  ------------

  1. Problem: Link might not come up on some 578xx cards. The workaround
              is to set "default_adv_autoneg_cap=0" in bnxe.conf.
     Cause:   Phy settings are not being propogated correctly.

  2. Problem: This release is x86 only and does not support SPARC.
     Cause:   n/a


Version 6.4.37 (Jun 7, 2011)
============================

  Fixes
  -----

  1. Problem: nicdrv test04 causes a panic with multiple multicast addresses
     Cause:   On 57712 setting a large multicast address table is broken up
              into configuration commands that contain 16 addresses each.  In
              this case the completed command structure was not being freed
              correctly which resulted in a panic.

  2. Problem: multicast address are not being removed properly
     Cause:   When GLD requested to remove a multicast address it was not being
              removed from the table properly.


Version 6.4.36 (Jun 3, 2011)
============================

  Fixes
  -----

  1. Problem: Cont00055756 - kernel panic:bnxe_lm_cfc_attn_everest_processing
     Cause:   Firmware requires only one ramrod to be pending with the
              firmware. This requirement not implemented in the driver.

  2. Problem: Cont00055954 - Solaris:vhci_scsi_reset during target cable swap
              test
     Cause:   The error return value for ABTS timeout was not correct.

  3. Problem: Cont00055698 - Solaris: deleting fcoe port when the initiator has
              250 LUNs and 4 paths to each LUN hangs
     Cause:   RSCN handler thread was blocked even though unload was requested
              by lower level driver.

  4. Problem: Cont00055721 - RSCN stress causes IO errors.
     Cause:   The I/O errors are because of the regression fixed in last few
              releases back.

  5. Problem: Cont00055896 - Solaris: After port shut/no shut with I/O, fcinfo
              hba-port no longer list the port.
     Cause:   When the port goes offline, one of the ELS is pending to be
              completed, but ELS was not returned to higher level layer with
              appropriate error code.

  6. Problem: Cont00055917 - If MSIX interrupts are not allocated flag it
              during driver install
     Cause:   By default Solaris only allows two MSIX interrupts per interface.
              When bnxe failed to allocate all its required MSIX interrupts
              it would default to fixed level interrupts.  There was a bug
              with fixed level interrupts where they would not be processed
              correctly and the interface could not be plumbed.  This has been
              fixed and a new syslog was added to flag when fixed level
              interrupts are used.  For performance reasons /etc/system must be
              modified on a production system to enable MSIX (see the
              readme.txt).

  Enhancements
  ------------

  1. Change:  The bnxef FCoE driver has been re-included in the installation
              package and FCoE functionality enabled in bnxe.
     Impact:  None.


Version 6.4.35 (Jun 2, 2011)
============================

  Enhancements
  ------------

  1. Change:  The bnxef FCoE driver has been removed from the installation
              package and FCoE functionality disabled in bnxe.
     Impact:  None.


Version 6.4.34 (May 27, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00055819 - Solaris network teaming fails to talk with second
              port
     Cause:   The GLD layer sets the MAC address on the aggregate interfaces
              before they are plumbed.  The 577xx architecture requires the
              interface be plumbed and interrupts working in order to
              communicate with the firmware and set a MAC address.  Now the GLD
              provided MAC address is cached and used when an interface is
              plumbed.


Version 6.4.33 (May 26, 2011)
=============================

  Fixes
  -----

  1. Problem: nicdrv test00 and test04 fail on SPARC
     Cause:   The crc32 hash of multicast MAC addresses on SPARC was not being
              calculated correctly which resulted in no multicast traffic to be
              received.


Version 6.4.32 (May 26, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00055666 - In multipath: Path states are not correct
     Cause:   When a link goes down or a path is broken, there are lots of
              ABTS generated which timeout as the link is broken. The timeout
              path does not properly release the task structure. This non
              release of task structure depletes to the extent no I/O could
              progress for lack of task resources and multipath software marks
              such paths offline and never recovers from it. This is a
              regression introduced a few release back.

  2. Problem: Cont00055833 - Solaris: catapult -t -p -og command hangs when
              targets are taken offline or zoneset changed.
     Cause:   There were few I/Os not cleaned out properly when the command
              undergoes recovery and retry.

  3. Problem: Cont00055869 - DUT does not recover from target reset while
              running I/O tests.
     Cause:   When the resets are issued back to back within a gap of 5 secs,
              the commands which are replayed back because of first reset were
              not getting returned back to higher level layer.

  4. Problem: Cont00055351 - Flowcontrol counter increases even though no pause
              frames are seen in trace.
     Cause:   The HW statistic offsets for DMA transactions were not configured
              correctly.

  Enhancements
  ------------

  1. Change:  The artificial limit on number of tasks that can be used by LV
              is removed.  Now all the 4K tasks per port can be used by LV.
     Impact:  None.


Version 6.4.31 (May 24, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00055776 - Solaris: Medusa does not exit clean; if any path
              failover, cable pull disruptive test is done before exiting
              medusa.
     Cause:   When the I/O goes through recovery and link goes down. Such I/Os
              are not properly completed and cleaned out from queues.


Version 6.4.30 (May 20, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00055519 - Shut/no shut to uplink in NPV mode causes
              initiator to not log back in.
     Cause:   The FCF list was not purged properly under scenarios where the
              link does not go offline with a CVL. This causes a stale FCF to
              be selected and when new FCF send discovery solicitation and
              since the FCF does not match it does not login.

  2. Problem: Cont00055706 - Solaris: Removing NPIV config variable from
              bnxef.conf.
     Cause:   NPIV is not supported under Solaris 10 Update 9 so the config
              item was removed to avoid confusion.

  3. Problem: Cont00055735 - Solaris: system crashed after doing disable/enable
              fcoe on the switch side.
     Cause:   There was a timing issue when LOGO handler starts. It found the
              session which was an active session but when trying to clean it
              it was not a valid one. This race caused the panic.

  4. Problem: Cont00055625 - Solaris:system crash while introducing new targets
              with zoning.
     Cause:   There was a timing issue when PLOGI is transmitted. The handler
              finds there is a session that already exists but when it tries to
              clean up it find the session structure was previously cleared.
              This race caused the panic.

  Enhancements
  ------------

  1. Change:  Firmware 6.4.37
     Impact:  None


Version 6.4.29 (May 17, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00055527 - Initiator continuously re-logs back into fabric
              with switch is in NPV mode.
     Cause:   Because of many discovery advertisements coming from different
              FCFs, the discovery enforcement is enabled many times which
              causes it to go through discovery enforcement routine too
              often.

  2. Problem: Cont00055519- Shut/no shut to uplink in NPV mode causes initiator
              to not log back in
     Cause:   The selection of FCF was not matching that sent in the VLAN
              notification. This caused no FLOGI to be sent.

  3. Problem: Freeing an FCF from the list of FCFs causes a kmem_cache not
              empty message when deleting the fcoe-port.
     Cause:   The count used is dynamically changing because of FCF freeing
              which caused a for loop to end prematurely. This resulted in
              some of the entries in the list to not get freed.

  4. Problem: Under NPV mode CVL generated during delete-fcoe-port causes
              a panic.
     Cause:   When FIP LOGO was sent when deleting an fcoe port, this sometimes
              caused CVL to be generated and it was not handled correctly.

  5. Problem: Number of EQE entries was too low for FCoE processing.
     Cause:   The max FCoE tasks configuration item was not being propagated
              correctly.


Version 6.4.28 (May 13, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00055482 - kernel panic: bnxef:bnxef_fip_sm_send_flogi_fdisc
     Cause:   The fcf_ident structure was not initialized when shut/no shut is
              issued. This was a regression because of a previous fix. When
              fcf_ident is NULL the frame is dropped.

  2. Problem: Cont00054686 - Can't recreate FCOE port without module unload.
     Cause:   In the detach routine, the soft state structure was not released.

  3. Problem: Cont00055590 - Solaris: Incomplete syslog message.
     Cause:   This message should not be included. Removed the message.

  4. Problem: Cont00055520 - kernel panic: System idle - bnxe:lm_stats_dmae
     Cause:   Unknown since the firmware reset and neither a grcdump or Solaris
              crash dump could be obtained. It was found that TCM, DMAE, PBF,
              TIMERS, XCM, DMAE parity errors were ignored, while still
              asserting the "close the gates" bit.  If this issue occurs again
              we should see a proper assertion by the firmware and panic by the
              kernel which will catch the error and allow proper debugging.

  5. Problem: nicdrv test05 fails
     Cause:   Some private GLDv3 properties were not defined as read-only.

  Enhancements
  ------------

  1. Change:  New FCoE stats to indicate transport routine returned BUSY.
     Impact:  None

  2. Change:  Max FCoE exchanges supported changed from 8K to 4K
     Impact:  None

  3. Change:  Number of threads associated with FCoE task queues increased from
              64 to 256.
     Impact:  None

  4. Change:  Profiling for SCSI commands has been included.
     Impact:  None


Version 6.4.27 (May 10, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00055314 - Kernel panic:bnxef:bnxef_fip_sm_send_fka.
     Cause:   Recent fix for Cont00055159 to change VLAN ID caused this
              regression. That fix purged the FCF database and in turn sets the
              selected FCF pointer to NULL.  The previously scheduled FIP
              keepalive did not know the port has gone down and the FCF is not
              selected yet. This resulted in a reference to a NULL pointer.

  2. Problem: Cont00055317 - fcinfo show no adapter after zoning 1024 targets.
     Cause:   The connected SANBlaze were timing out for PLOGI sent to certain
              targets. This resulted in discovering all 1024 targets after more
              than 10 minutes as each timeout PLOGI was tried after 20 secs.
              During discovery, fcinfo does not show configured adapters. After
              fixing this with new SANBlaze firmware, the RSCN sent for
              indicating change in target was getting rejected as the number of
              unsolicited buffers was set to only 64 in this driver, therefore
              it cannot handle the maximum of 1024 RSCN indicating change in
              all 1024 targets.  When one RSCN is rejected, we will schedule
              internally a fabric RSCN so that complete fabric discovery will
              be done to identify all devices.

  3. Problem: Cont00055308 - Kernel panic: disconnecting brocade switch.
     Cause:   When disconnecting from a Brocade switch occurred the sessions
              are cleaned up.  However, after cleanup has happened a LOGO is
              handled which is trying to cleanup the same session already
              cleaned up. This condition and now handled gracefully.

  4. Problem: Cont00055411 - Kernel panic: with shut/no shut while running I/O
              no bnxef reference.
     Cause:   When the FIP state machine is in progress after all the sessions
              are cleaned up, there was an ABTS timeout happening for a command
              which was initiated before the session cleanup. Handling this
              timeout resulted in a stale session pointer being referenced.

  5. Problem: When a PRLI timeout happens, the task is not removed from session
              list.
     Cause:   It was just missed, found during code inspection.

  6. Problem: nicdrv test01 causes a kernel panic from a firmware attention
     Cause:   There are rare cases with the stack would send an LSO packet that
              is chained across many mblk buffers.  The firmware implements a
              sliding window across 10 packets fragments and each window must
              contain more than MSS bytes.  The requirement was being violated
              so bnxe now limits that maximum number of packet fragments to 10
              (down from 12).  All trailing mblk will get double copied into a
              single copy buffer which will be pointed to by the last packet
              fragment seen by the firmware.

  Enhancements
  ------------

  1. Change:  Version number of driver not shown in modinfo output for bnxef.
     Impact:  None

  2. Change:  The full chip ID (MAC plus ASIC rev) is now shown in bnxe kstat.
     Impact:  None

  3. Change:  Firmware 6.4.35
     Impact:  None


Version 6.4.26 (May 3, 2011)
============================

  Fixes
  -----

  1. Problem: Cont00055159 - Initiator retains VLAN from previous fabric.
     Cause:   All the known FCFs were not purged when the link goes offline.
              When the link comes online, new FCFs will be discovered possibly
              from a new fabric and the VLAN to be used will be decided based
              on new selection of the FCF.

  2. Problem: Cont00055136 - Kernel Panic: System Idle
     Cause:   This setup had a bad disk which was going down and coming back up
              very frequently.  This caused the PRLI completion and a new PLOGI
              generated because of state change notification cross which caused
              a race condition.  This resulted in a NULL pointer condition.

  3. Problem: Cont00055050 - Initiator accepted FLOGI LS_ACC with incorrect
              destination MAC address.
     Cause:   The destination mac address was not validated when LS_ACC was
              received.

  4. Problem: Cont00055081 - Kernel Panic: Multiple ports from a single FCF on
              a single fabric
     Cause:   This machine was dropping discovery advertisements from the FCF
              because of flooded ARP packets from different machines connected
              on the fabric. This caused discovery advertisement enforcement
              procedure to be invoked which in turn invoked implicit fabric
              logout procedure. After the implicit logout, this procedure
              caused a second FLOGI to be generated even though the first one
              was accepted. The generation of second FLOGI caused the LS_ACC
              handler to hit this scenario.

  5. Problem: Cont00054733: One port fail to show connections on Brocade with
              multipath.
     Cause:   RSCN affected N_PORT ID pages in this scenario and always
              indicated individual N_PORT IDs. Such RSCN caused timing issues
              in Leadville. It is worked around by converting such RSCN pages
              to Domain RSCN and complete fabric discovery will happen.


Version 6.4.25 (April 26, 2011)
===============================

  Fixes
  -----

  1. Problem: Cont00054889 - LOGO sent with incorrect N_port ID logged out S_ID
              and D_ID pair.
     Cause:   It was not looking at what came in the payload. Assumed that it
              came from same S_ID which need to be logged out

  2. Problem: Cont00054940 - Kernel Panic when added other vendor HBA to zone
              with 512 targets.
     Cause:   Based on the crash dump analysis it was found the port structure
              is coming out to be NULL and dereferencing it caused the panic.

  3. Problem: Cont00054840 - FCoE read and write throughput needs improvement.
     Cause:   Most of the time was spent allocating and freeing the BD table.
              Now it is preallocated.

  4. Problem: Cont00055016 - Remote port shows: Error has occurred.
              HBA_ScsiReportLUNsV2 failed, reason ERROR.
     Cause:   The PRLI was responded by bnxef driver without informing
              Leadville. This caused Leadville not to know what kind of remote
              port is seen.

  5. Problem: Cont00055022 - Second initiator port shows no device when zoned
              in with first.
     Cause:   The earlier back off algorithm did not work properly when two
              ports from same board logged into each other.

  6. Problem: Cont00055019 - Kernel panics when stressing max targets.
     Cause:   Leadville can take a while to respond to PRLI from a domain
              controller but in the mean time the LOGO is partially handled by
              bnxef driver which causes this panic to happen.

  7. Problem: Tx Broadcast and Multicast stats are not updating.
     Cause:   With packets that were not flagged for checksum offload, the
              packet descriptor was not getting configured properly for the
              firmware to update these statistics.


Version 6.4.24 (April 20, 2011)
===============================

  Fixes
  -----

  1. Problem: Cont00054749 - fcinfo shows errors on QLogic initiators.
     Cause:   The unsolicited buffer flag to indicate the class of service was
              wrongly set which caused Leadville not to respond to it. Also
              there are other issues because of PLOGI crossing between two
              initiators.

  2. Problem: Cont00054808 - kernel panic: bnxef:bnxef_fip_rx_handler while
              changing A bit in discovery advertisement.
     Cause:   When the switch indicates A bit to be zero it indicates S bit
              is also set.  A loop to send FLOGI will be started as a separate
              thread. Each thread was waiting for A bit to be turned on. Once
              it is all the threads which were waiting were firing FLOGI which
              caused one to succeed and response to other caused this panic. As
              the code is written with assumption that only one thread can send
              FLOGI. This has been corrected.

  3. Problem: Cont00054813 - Kstat data is incorrectly formatted.
     Cause:   The state structure is 64 bit address and kstat strings are
              limited to 16 characters.  This resulting in the string delimiter
              to get lost. Therefore the address is split into two variables
              with hi and lo values instead of one 64 bit value.  Slso fixed
              some of the consistency issues with naming FCoE and also the name
              of the statistics.

  4. Problem: Panic in bnxef_task_session_list_remove routine.
     Cause:   Typo error in BNXEF_DEBUG statement which caused cmn_err to
              panic.

  5. Problem: rx dropped frame count stats not correct.
     Cause:   Firmware returns two values in two different sections, to get the
              cumulative drop count both need to be added.

  6. Problem: Cont00054700 - NDD doesn't show flow control
     Cause:   With Solaris 10 Update 9 the NDD tool no longer uses the ND_GET
              and ND_SET ioctls to get/set driver properties. NDD is getting
              deprecated in favor of dladm.  Since dladm isn't fully complete
              the NDD paths are routed through GLDv3.  Many properties were not
              exposed via the GLDv3 path and now they are plus a few more (i.e.
              all those found in bnxe.conf).


Version 6.4.23 (April 15, 2011)
===============================

  Fixes
  -----

  1. Problem: Cont00054693 - Kernel panic: bnxef:bnxef_fip_rx_handler doing
              shut/no shut on port while initiator is stuck in FLOGI
     Cause:   The problem is discovery advertisements are not received when
              breaking the connection on middle box and reconfiguring the FIP
              discovery advertisement enforcement happens. This condition is
              seen in the loop where FLOGI is retried where it will exit
              without continuing to retry and the discovery enforcement routine
              will restart sending FLOGI.

  2. Problem: Cont00054729 - Able to delete-fcoe-port that isn't there
     Cause:   The communication between brcmfcoeadm and bnxe was not properly
              using errno to express various success/error conditions.

  Enhancement
  -----------

  1. Change:  Cont00054548 - Port statistics not available.
     Impact:  Many stats were unavailable and prevented testing efforts. New
              kstat groups added to bnxe are: l2chip, l2driver, l2stats, link.
              New kstat group added to bnxef: fw-stats. Lastly, bnxef stats now
              include the maximum number exchanges and offloaded connections
              supported.


Version 6.4.22 (April 13, 2011)
===============================

  Fixes
  -----

  1. Problem: Cont00054620 - Kernel panic: bnxef_fip_sm_send_flogi_fdisc
              multiple ls_rjt to FLOGI
     Cause:   Since the retry was blocking other new frames to come in from L2
              path, it caused the fabric logo to be initiated as it did not
              receive discovery advertisement before 2.5*FKA_ADV_PERIOD, this
              caused the FIP state to change. Even after the state change
              occurred the driver was still trying to send the FLOGI out as it
              was not responded. This caused an assert in the send routine and
              a panic.

  2. Problem: Cont00054591 - Kernel panic:bnxef:bnxef_ls_acc_rx_handler when
              wrong OX_ID sent on i PLOGI LS_ACC.
     Cause:   The bounds check was not done and the driver was referencing a
              bad address which caused a panic. Now the check is done and such
              a frame with a bad OX_ID is dropped.

  3. Problem: Check for last sequence bit and end sequence bit in F_ctl not
              done to drop frames.
     Cause:   Now it checks for the ELS frames and drops if the proper F_ctl is
              not set.

  4. Problem: The ELS response should always being with Sequence count of zero.
     Cause:   This check was missing. Included the code to check for it and
              drop if not appropriate.

  5. Problem: Cont00054549 - FLOGO with incorrect FIP descriptor MAC causes
              kernel panic.
     Cause:   Since an incorrect MAC address was provided it was unable to find
              the right instantiated port that needed to be logged out.  Now
              when not found it is quietly dropped as the frame came from some
              unknown port.

  6. Problem: Cont00054545 - fcinfo show no adapter after brcmfcoeadm
              create-fcoe-port bnxe0
     Cause:   The driver was only informing Leadville if we are able to login
              to the fabric and acquire an ID. This is wrong and now it is
              fixed.

  7. Problem: Cont00054340 - Initiator does not respond to F_port LOGO.
     Cause:   Previous fix finds the port to be logged out using the
              destination MAC address seen on Ethernet header.  But the
              specification isn't clear whether that should be used.  Therefore
              changed the implementation to decide based on the MAC address
              descriptor that is part of FIP LOGO.

  Enhancement
  -----------

  1. Change:  Firmware 6.4.33
     Impact:  None


Version 6.4.21 (April 7, 2011)
==============================

  Fixes
  -----

  1. Problem: Cont00054340 - Initiator does not respond to F-port LOGO
     Cause:   Support for this was not implemented.

  2. Problem: Cont00054371 - Initiator stops trying to log into switch after 10
              attempts
     Cause:   That was the retry limit set.  Now during boot Leadville and the
              Solaris driver development framework do not allow indefinite
              retries as it locks the device tree until the device becomes
              online or gives up.  Indefinitely blocking until FLOGI is
              accepted causes tools like prtvtoc and brcmfcoeadm to block until
              the device tree is released.  Therefore in those cases the retry
              has been set to 120 times (4 minutes). In other cases like a
              cable pull or shutting down the interface and bringing it back up
              will result in infinite retries. If the retry during boot is not
              sufficient, administrator can do delete-fcoe-port and retry
              bringing up the FCoE port using create-fcoe-port option under
              brcmfcoeadm(1M). This is after the retry count is exhausted and
              the driver has given up by printing a warning message on the
              console. Even in cases where infinite retries are done
              administrator could issue disable-fcoe-port option using
              brcmfcoeadm(1M) tool and re-start the fcoe port creation process.

  3. Problem: Cont0054410 - MPIO: path status does not show offline when port
              is disabled at switch.
     Cause:   This problem happens when two initiator ports are zoned in the
              same zone and because of this the Leadville stack's behavior is
              when both of them try to login into each other only the login
              with the bigger port WWN will get a response and the session will
              be created.  For the other login, which did not succeed, five
              retries with a 20sec delay are performed before it times out.
              During these retries, if a CVL is generated in this test
              scenario, the PLOGI task is lost as it is not in any queue and
              the timeout handler checks whether the CVL is in process and it
              does not return that packet to Leadville.  This causes Leadville
              to wait for the packet to return before it can perform the
              offline event we are sending up for that process and in result
              change the path status to offline.

  4. Problem: With RSCN stress test a few ELS were not returned back to
              Leadville.
     Cause:   Found a few more scenarios where the PLOGI sent as middle path
              exchange on a session already offloaded is not cleaned up
              properly.

  Enhancement
  -----------

  1. Change:  Firmware 6.4.32
     Impact:  None


Version 6.4.20 (March 31, 2011)
===============================

  Fixes
  -----

  1. Problem: Cont00054197 - Initiator fails to recover from dropped SCR LS_ACC
     Cause:   This SCR is sent to 0xFFFFFD which does not require a session to
              be established. There was a wrong assumption that the only ELS
              that can come without a session established is PLOGI. SCR is also
              another example for it. Enhanced the code to handle that.

  2. Problem: Cont00054190 - kernel panic bnxef:bnxef_fip_rx_handler
     Cause:   The discovery advertisement enforcement was calling
              bnxef_bring_up_port and while in the FIP state machine and it
              gets unicast discovery advertisement, it also calls
              bnxef_bringup_port. This cause multiple routine to send FIP FLOGI
              and when one gets accepted, and the other one receives the LS_ACC
              for it, it gets the wrong port structure which causes the panic.

  3. Problem: Cont00054252 - kernel panic: bnxef:bnxef_ls_rjt_rx_handler while
              zoning and unzoning initiators
     Cause:   When LS_RJT is given because of a previous discovery enforcement,
              the machine was undergoing fabric logout that means all commands
              are cleaned up and sent back to upper layer.  When LS_RJT happens
              the machine has cleaned up the command for which this LS_RJT has
              arrived.  This caused the timeout value to be invalid.

  4. Problem: RSCN Stress while running SCSI I/O seems to show symptoms of
              memory leak.
     Cause:   When RSCN Accept from Leadville is dropped because we have
              already sent the LS_ACC, the cleanup of certain buffers did not
              occur.  Also, when PLOGI times out, the buffers allocated for
              that timeout were not cleaned out properly. The PLOGI timeout
              scenarios were frequently happening when the RSCN stress was
              running.

  5. Problem: When two initiators are in same zone, an emulex adapter was
              sending PRLI without waiting for PLOGI Accept. This caused panic.
     Cause:   Since PLOGI is not accepted, no session has been established.
              Therefore there is no session structure available. This causes
              PRLI request to search for the appropriate session and finds the
              session is NULL which caused an assert in debug driver


Version 6.4.19 (March 28, 2011)
===============================

  Fixes
  -----

  1. Problem: Cont00053504 - E2 Solaris Eth Sparc system with SOL10up9 and
              driver 1.64.15 panicked after HCTS started (as test manager)
     Cause:   TCP/LSO was causing a panic in the PCI fabric and the hardware
              was attempting to DMA from invalid addresses.

  2. Problem: Cont00053788 - RSCN stress causes throughput to go to zero.
     Cause:   Restricting the number of unsolicited buffers to 64. This is
              modeled after the Emulex driver functionality with that it works
              well when we run test case indicated in CQ. However, there is an
              issue with SAN BLAZE that it stops issuing the RSCN after
              2-4hours. That is being worked on with SANBlaze engineer.

  3. Problem: FC-CT when rejected should not be retried as it will delay RSCN
              handling completion.
     Cause:   Removed the retry mechanism for FC-CT commands.

  4. Problem: Separate the Task Queue used for RSCN handling different from the
              main stream I/O handling task Queue.
     Cause:   This was done to resolve the availability of resources to
              complete handling of RSCN in time.

  5. Problem: Panic seen while handling ls_acc_rx_handler.
     Cause:   The session pointer was NULL, that has been fixed appropriately.

  Enhancement
  -----------

  1. Change:  The "fcoe_enable" configuration item has been exposed in
              bnxe.conf.  It is by default ON and allows those interfaces
              that support FCoE to enumerate the bnxef driver.
     Impact:  None

  2. Change:  Firmware 6.4.31
     Impact:  None


Version 6.4.18 (Mar 16, 2011)
=============================

  Fixes
  -----

  1. Problem: Task management target reset handling was not following
              standards.
     Cause:   Standard recommends all commands be aborted immediately after
              target reset. bnxef also aborts but not immediately.  We allow
              the commands to timeout and then it will follow the timeout
              process and get aborted.

  2. Problem: Assertion when the FLOGI is sent out with Brocade switch.
     Cause:   The fip_disc_status is not updated properly which caused the
              assert that has been fixed.

  3. Problem: The RA_TOV value was set to 2 secs it should have been 10 secs.
     Cause:   Typo, now have made it conforming to specification.

  4. Problem: Cont00053560 - MAC address not correctly shown in kstat
     Cause:   When FCoE was enabled on a port and the L2 interface was not
              plumbed, the cached L2 MAC address was getting cleared and kstat
              was reading zeros.

  5. Problem: Cont00053568 - User is allowed to create-fcoe-ports on non-FCoE
              functions with brcmfcoeadm
     Cause:   FCoE licensing and NPAR configurations were not being enforced.


Version 6.4.17 (Mar 10, 2011)
=============================

  Fixes
  -----

  1. Problem: Cont00053640 - Kernel Panic: bnxe:BnxeFcoePrvMapMailbox: While
              zoning targets on brocade
     Cause:   An invalid context identifier was being used to index into
              an array with FCoE channels running on higher numbered NPAR
              functions.

  2. Problem: Cont00053642 - Kernel Panic at random times: genunix:allocb
     Cause:   Memory was getting corrupted on systems where the ioctl data
              buffers were spanned across multiple mblks.

  3. Problem: Unsolicited ECHO was not responded correctly.
     Cause:   Leadville does not respond to ECHO ELS, now instead, the bnxef
              driver sends a LS_RJT.

  4. Problem: When FC-CT requests timeout, there was an ASSERT indicating
              session pointer is NULL.
     Cause:   The argument passing to structure to such timeout routine did
              not have the session set properly.

  5. Problem: ABTS timeout happending for ELS and FC-CT was not handled
              correctly.
     Cause:   Did not have such support earlier for ELS and FC-CT. Now
              implemented.

  6. Problem: Random packet drop while SCSI I/Os are going shows race between
              completion and timeout handling.
     Cause:   This was due to a wrong fix done in last release. That has been
              corrected.

  Enhancement
  -----------

  1. Change:  Added a new admin application (/usr/sbin/brcmdcbxinfo) that
              displays the currently configured DCBX information.
     Impact:  None


Version 6.4.16 (March 1, 2011)
==============================

  Fixes
  -----

  1. Problem: Cont00053380 - RFT_ID FCP FC-4 type bit is zero.
     Cause:   Leadville for the very first time sends this bit map to be all
              zeroes. For now it is worked around in FCA driver. Discussion is
              ongoing to find the right fix in Leadville. Also Leadville when
              the link is jiggled it gives both FCP type and IP type to support
              IP over fiber channel. That does not make sense for our CNA
              device. Therefore worked around to only indicate FCP in FC4-types
              field of RFT_ID.

  2. Problem: Cont00053395 - Unable to create-fcoe-port bnxe0 after
              delete-fcoe-port bnxe0
     Cause:   This is not a bug, they need to do one more step before
              create-port is issued after delete-fcoe-port. This was documented
              in the README. Submitter confirmed that it works after that step.

  3. Problem: Cont00051790 - Initiator fails to FLOGI back into fabric after
              packet drops.
     Cause:   This could not be recreated, however, while testing the same
              condition with lots of packet drop using Anue system, have fixed
              various issue, i was able to run the low bandwidth I/Os (as Anue
              system cannot handle high bandwidth traffic) and made 1 in 100
              frames to be dropped based on Gaussian distribution in both
              directions and it worked for nearly 9 hours. If you still find
              issues, please file different bugs.

  Enhancement
  -----------

  1. Change:  Firmware 6.4.27
     Impact:  None


Version 6.4.15 (Feb 25, 2011)
=============================

  Fixes
  -----

  1. Problem: PLOGI TIMES out and ABTS times out as well for the PLOGI exchange
              the driver asserts while removing the task from session task list.
     Cause:   PLOGI is the first frame which establishes the session, therefore
              when it times out we donot have to send ABTS, all we have to do
              is retry PLOGI. This has been implemented.

  2. Problem: Task Structure is unable to to be allocated, Leadville calls
              uninit_pkt and panic in that routine.
     Cause:   The uninit pkt relies on pkt_fca_private field initialized in
              init_pkt entry point. In this case such initialization didnot
              happen as the task structure allocation failed. Fixed that by
              handling it appropriately in uninit_pkt.

  3. Problem: ULP timeout sent in pkt_timeout field not used instead it was
              hardcoded.
     Cause:   For some experimentation, it was set to some hardcoded value ,
              after such change, it was not reset back to the correct value.

  4. Problem: CVL caused firmware to ASSERT
     Cause:   This was found to be because the Destroy session request was
              issued while some more tasks are being cleaned up. Now
              re-architected the session cleanup and task cleanup routines to
              get the CVL test run for long number of hours.

  5. Problem: With Large Queue Depth in Medusa_tools, there is a firmware
              assert after 9 hours of test run.
     Cause:   This was found be some how the driver is so slow that it always
              hits scenarios where CQ cons index is updated when
              2 *MAX_CQES -1 condition is met in CQ processing loop. Since the
              hardware aggregates these messages, we have Speeded up the CQ
              processing loop so that all completions are handled in different
              threads therby minimizing such aggregation by the hardware.

  6. Problem: Race between PRLI handling and subsequent PLOGI Sending seen as
              driver assert.
     Cause:   When the Prli LS_ACC is being handled there is a PLOGI being
              sent, during PLOGI sending we cleanup the session, this cause
              PRLI LS_ACC handler to indicate there is LS_ACC received for
              a command which does not have a valid session. This has been
              fixed by revalidating whether the session exists or  not.

  7. Problem: When RSCN is handled, PLOGI timesout.
     Cause:   When Plogi is sent out, it cleans up already as session has been
              established. During RSCN handling, Leadville will send PLOGI
              again to existin targets which will cause those session to be
              destroyed and re-established when the PRLI completes subsequent
              to PLOGI. Such destruction of session when PLOGI was sent out
              didnot happen, because of that PLOGI is sent Via L2 Path. But
              LS_ACC for PLOGI is handled via offloaded path, the firmware sees
              a frame received, but no such task active, therefore it drops
              Therefore Driver sees PLOGI to timeout. The fix is to make sure
              such destruction of existing sesssion happen without fail.

  8. Problem: Two FLOGIs are sent inadvertantly during CVL handling.
     Cause:   bnxef_ bringup_all_ports routine was called from two different
              places.  one from CVL handler and another time from online
              handler. Now i have removed the calling from CVL handler as it is
              not needed.  Everytime CVL is received for the first port, the
              switch will bring down the link and bring it online.

  9. Problem: Unsolicited PRLO causes panic in Solaris 10 Update 9.
     Cause:   Solaris 10 Update 9 does not set the pkt_ub_token field as
              done in opensolaris. Now, under Solaris 10 update 9, we donot
              rely on that field, but search all released unsolicited buffers
              to identify the required bufer based on d_id and Ox_id.

  10. Problem: Receive data field size from remote target not programmed right
               with firmware.
      Cause:   The receive data field size received in LS_ACC for PLOGI not
               not programmed into firmware during session offload. Now it is
               done correctly.

  11. Problem: LS_RJT Received for RRQ causes ASSERT.
      Cause:   There is no handler for LS_RJT received for RRQ. Now it is
               included.

  12. Problem: Panic when trying to send FIP LOGO.
      Cause:   The port didnot acquire a ID yet as the FLOGI was not sent out
               in the mean time if the delete-fcoe-port is issued while sending
               fip_logo it assume some of the fields in the port structure to
               be intialized. This is fixed by checking for the port shutdown
               state and deciding whether FIP LOGO need to be sent or not.

  13. Problem: VSAN to VLAN binding causes FLOGI not sent out
      Cause:   The bringup port routine was not called properly under certain
               conditions, it is fixed now.

  14. Problem: Plogi to Name Server was not sent under certain conditions
      Cause:   A state variable is not cleared correctly which caused the PLOGI
               to name server not sent out. Now the flags are cleared in
               different place to take care of this scenario.

  15. Problem: Implicit fabric logo handler does not free allocated task
               strcuture.
      Cause:   None, missed de-allocation.

  16. Problem: Panic in ABTS timeout handler.
      Cause:   For ELS, ABTS timeout was not expected and therefore not coded.
               Now it is properly coded and the panic is fixed.

  17. Problem: Race in handling RQE entries.
      Cause:   The RQEs deliver Sense information and also other error/warning
               event from firmware. Since these two are handled in two
               different threads there is a possibility the ordering is messed
               up. This causes sometime the sense information to be looked up
               as error/warning event and error event is looked up as sense
               information. This caused assert in the code.

  18. Problem: Changed the configuration paremeters for RQs.
      Cause:   The original config was not optimal, now i have 128 RQ entries
               each of size 256 bytes instead of 16 RQ entries each of size
               1024 bytes.

  19. Problem: Adisc response was not filled out fully only partial data
               indicating success was sent to Leadville.
      Cause:   The first 4 bytes of the response was sent up which indicates
               LS_ACC but that may not be correct. Therefore the complete data
               is sent now. So far we didnot see any problem with sending
               less data.

  20. Problem: Memory was getting corrupted during kstat calls.
      Cause:   Construction of string values were overwriting the display
               buffer.

  Enhancement
  -----------

  1. Change:  SPARC is now an officially supported platform for bnxe.
     Impact:  None

  2. Change:  NIC Partitioning (NPAR) mode is now supported.
     Impact:  None

  3. Change:  Firmware 6.4.26
     Impact:  None

  Known Issues
  ------------

  1. Problem: Identification of certain targets whose D_ID assigned by
              switch ends with 0xXXXX02. This will cause the LUNS under that
              target port not identified.
     Cause:   In Leadville stack, the GA_NXT response is not stored properly
              it should byte swap the first 4 bytes of GA_NXT response to find
              the port type, since it is not done, instead it picks the least
              significant byte in the D_ID as the port type. This cause the
              Leadville stack to understand the target port which has such
              D_ID allocated as a L port means arbitrated loop and does not
              discover further. You will see in the analyzer trace with PLOGI
              sent and successfull, ADISC sent and successfull and
              subsequently no frames generated to this target. I could fix
              this in open Solaris as we have source code, is under discussion
              with Oracle and trying to get such fix as a patch for SOlaris
              10 Update 9. Until then there will be this limitation.

  2. Problem: Identification of tape devices after the cable pull or after
              offline/online event is a problem.
     Cause:   In Leadville stack, the re-login to tape devices when an offline
              or online event happens is identified and is under discussion
              with Oracle for a resolution. Until then, the tapes cannot be
              identified when such events happen. However, when you see this
              problem, if you reboot you will have the tape devices available
              for use.


Version 6.4.14 (Jan 4, 2011)
============================

  Fixes
  -----

  1. Problem: Cont00051388 - FW assert when doing brcmfcoeadm delete-fcoe-port
              bnxe0
     Cause:   After the FIP logo is sent to switch we are sending the FKA to
              the switch. This causes the switch to generate CVL. This CVL
              starts to cleanup sessions while already cleanup of the sesssions
              are in progress.  This causes sometime trying to disable a non
              existing session with firmware which is already destroyed.

  Enhancement
  -----------

  1. Change:  Converted to a single unified installation package that contains
              both bnxe and bnxef.
     Impact:  None

  2. Change:  Includes support for FCoE sequence level error recovery, FC-Tape.
     Impact:  None

  3. Change:  Firmware 6.4.20
     Impact:  None


Version 6.4.9 (Dec 7, 2010)
===========================

  Enhancement
  -----------

  1. Change:  Added ability to modify LLDP and DCBX parameters via bnxe.conf.
     Impact:  None


Version 6.4.8 (Dec 7, 2010)
===========================

  Enhancement
  -----------

  1. Change:  Firmware v6.4.15.
     Impact:  None


Version 6.4.7 (Nov 23, 2010)
============================

  Fixes
  -----

  1. Problem: Cont00050931 - maximum remote port sessions kernel panics
     Cause:   A mutex lock was missing in the CID recycle code.

  Enhancement
  -----------

  1. Change:  Firmware v6.4.14.
     Impact:  None


Version 6.4.6 (Nov 19, 2010)
============================

  Fixes
  -----

  1. Problem: Cont00051182 - L2 traffic is tagged with wrong VLAN ID
     Cause:   The VLAN tag wasn't being swapped and shifted correctly
              before sending with the packet to the firmware.


Version 6.4.5 (Nov 16, 2010)
============================

  Fixes
  -----

  1. Problem: Cont00050909 - L2 traffic is not being tagging with VLAN ID
     Cause:   Solaris sends VLAN headers inband with outgoing packets.  The
              LM code wasn't handling this case properly and letting the
              firmware know the header was there.  With PFC/DCBX this resulted
              in two VLAN headers being sent on the wire for each packet.

  Enhancement
  -----------

  1. Change:  Firmware v6.4.13.
     Impact:  None


Version 6.4.4 (Nov 4, 2010)
===========================

  Fixes
  -----

  1. Problem: Cont00050731 - create-fcoe-port fails with ioctl error
              Cont00050729 - brcmfcoeadm delete-fcoe-port bnxe0 fails to remove
              fcoe
     Cause:   There are undocumented issues inside the Solaris NDI framework
              where the bnxef driver wouldn't get attached.  bnxe is now more
              resilient on handling the bnxef child node.

  Enhancement
  -----------

  1. Change:  Implemented framework changes that allows the ability to force
              loading of bnxef for FCoE boot
     Impact:  None


Version 6.4.3 (Oct 27, 2010)
============================

  Fixes
  -----

  1. Problem: Cont00050541 - Kernel panic during bootup due to lm_fc_alloc_resc
     Cause:   fcoe resources were not cleaned properly when the channel was
              previously brought down

  2. Problem: Cont00050386 - brcmfcoeadm delete-fcoe-port bnxe[instance_number]
              failed to remove port
     Cause:   L2 vs FCoE client bring up/down has been streamlined and many
              race conditions have been eliminated.  Delete port functionality
              is now working properly inside bnxe.

  Enhancement
  -----------

  1. Change:  Many enhancements in the output of the mdb debug module.
     Impact:  None

  2. Change:  Firmware v6.4.9.
     Impact:  None


Version 6.4.2 (Oct 4, 2010)
===========================

  Fixes
  -----

  1. Problem: ASSERT occurs in DDI framework because the devi_addr of the FCoE
              child node was NULL.
     Cause:   Some bus control IOCTLs were not implemented correctly and
              support was needed for DDI_CTLOPS_INITCHILD and
              DDI_CTLOPS_UNINITCHILD.

  Enhancement
  -----------

  1. Change:  The rx mask for the FCoE channel had both broadcast and
              all-multicast turned on.  These have been turned off and
              multicast address registration is now separated per client
              (i.e. L2 and FCoE).
     Impact:  None

  2. Change:  Added registration/support for 57712 PCI IDs 0x1203 and 0x1213
     Impact:  None

  3. Change:  Firmware v6.4.6.
     Impact:  None


Version 6.4.1 (Sep 29, 2010)
============================

  Fixes
  -----

  1. Problem: Cont00049192 - Customer Issue-BL460c G6 is doing Kernel panic
              when plumbing the bnxe(NC532i) NICS
     Cause:   Still have not root caused but current investigations lead
              to an interrupt enable/disable bug in Solaris.  This driver
              version provides a workaround where a one second delay has been
              inserted immediately after interrupts are enabled.  This delay
              only occurs when an interface is brought up with ifconfig.

  Enhancement
  -----------

  1. Change:  The '::bnxe' mdb command can now display details regarding the
              current state of mutexes and rwlocks.
     Impact:  None

  2. Change:  Added the bootcode version to the load string and kstats.
     Impact:  None

  3. Change:  Implemented routing of outgoing packets to various tx rings
              inside bnxe's GLDv3 mac tx routine.  This is needed since the
              stack uses only one entry point into the driver when sending
              packets and does not differentiate sending on different rings
              (i.e like the newer framework does in OpenSolaris / Solaris 11).
              The algorithm used to route packets can be modified via bnxe.conf
              by changing the route_tx_ring_policy configuration variable.  By
              default packets are routed based on the TCP/UDP src/dst ports.
     Impact:  Better performance and Solaris 10 Update 9 is now supported.

  4. Change:  Support for 57712.
     Impact:  None

  5. Change:  Support for FCoE.  Acts as a VBD for the bnxef driver.  FCoE
              administration initialized via the brcmfcoeadm utility.
     Impact:  None

  Known Issues
  ------------

  1. This driver release only supports OpenSolaris.



Version 6.0.5 (Aug 23, 2010)
============================

  Enhancement
  -----------

  1. Change:  PFC and DCBX is now supported.
     Impact:  None

  Known Issues
  ------------

  1. This driver release only supports OpenSolaris.


Version 6.0.4 (Aug 19, 2010)
============================

  Enhancement
  -----------

  1. Change:  The '::bnxe' mdb command now accepts an instance number and can
              walk as well (easier to use).
     Impact:  None

  Known Issues
  ------------

  1. This driver release only supports OpenSolaris.


Version 6.0.3 (Aug 10, 2010)
============================

  Enhancement
  -----------

  1. Change:  More performance enhancements.
     Impact:  None

  Known Issues
  ------------

  1. This driver release only supports OpenSolaris.


Version 6.0.2 (Aug 3, 2010)
===========================

  Enhancement
  -----------

  1. Change:  Set l2_fw_flow_ctrl to off by default.  It can be changed via
              bnxe.conf.  This flow control setting tells the fw to send pause
              frames when the "driver" is low in Rx buffers.  This is a second
              level of defense for flow control.  The first level sends pause
              frames based on the space available in the hardware receive
              buffer.  The first level is always on when flow control is
              enabled.
     Impact:  None

  2. Change:  Major overall increase in Tx performance, especially with TCP/LSO.
     Impact:  None

  Known Issues
  ------------

  1. This driver release only supports OpenSolaris.


Version 6.0.1 (May 18, 2010)
============================

  Enhancement
  -----------

  1. Change:  Rx/Tx ring support has been implemented.  The number of rings
              is configured via the num_rings option in bnxe.conf (default 4).
              Note there is a limit imposed by Solaris for the maximum number
              of MSIX interrupts a driver instance is allowed to allocate (2).
              See the readme.txt on how to configure the system (/etc/system)
              to allow more MSIX interrupts per driver instance.
     Impact:  Better performance.

  2  Change:  More statistics exposed via kstat.  New kstat groups implemented
              which show the statistics per ring.
     Impact:  None

  3. Change:  Added support for 57712/57712E.
     Impact:  None

  4: Change:  bnxe MDB debugger module
     Impact:  Easier debugging and better data analysis from clients in the
              field.  Debugger command is "<dev_info>::bnxe".

  Known Issues
  ------------

  1. This driver release only supports OpenSolaris.


Version 5.2.18 (Jul 20, 2010)
=============================

  Enhancement
  -----------

  1. Change:  Set l2_fw_flow_ctrl to off by default.  It can be changed via
              bnxe.conf.  This flow control setting tells the fw to send pause
              frames when the "driver" is low in Rx buffers.  This is a second
              level of defense for flow control.  The first level sends pause
              frames based on the space available in the hardware receive
              buffer.  The first level is always on when flow control is
              enabled.
     Impact:  None


Version 5.2.16 (Mar 30, 2009)
=============================

  Enhancement
  -----------

  1. Change:  Added the "disable_msix" config option to bnxe.conf.
     Impact:  None


Version 5.2.15 (Dec 18, 2009)
=============================

  Fixes
  -----

  1. Problem: When Tx double copy was turned on all LSO packets were
              getting copied into a newly allocated heap buffer.
     Cause:   Logic was incorrect for mapping outgoing packets.  Now
              all LSO packets are never double copied unless they
              contain too many fragments.

  2. Problem: DMA attribute warnings seen in syslog.
     Cause:   Solaris FMA registration was incorrect.

  Enhancement
  -----------

  1. Change:  For interrupt coalescing, the Rx and Tx interrupt spacing
              values have been exposed for tuning in bnxe.conf.
     Impact:  None


Version 5.2.14 (Dec 1, 2009)
============================

  Fixes
  -----

  1. Problem: Fixed an issue where LSO packets would get dropped because of a
              limitation defined by the maximum number of DMA handles.
              Additionally, packets are no longer dropped if they could not be
              mapped and/or copied correctly before sending.
     Cause:   The maximum number of fragments limit was not used correctly and
              the driver used to just drop outgoing packets if they couldn't be
              mapped.

  2. Problem: dladm shows the link status as unknown for various ports even
              though the link is up and traffic can be passed.
     Cause:   There was a race condition in the driver between when the link
              status was reported to the stack and when the actual link event
              was reported by the phy.


Version 5.2.13 (Nov 20, 2009)
=============================

  Enhancement
  -----------

  1. Change:  The driver no longer logs messages to the console.  Information
              message are logged to syslog only when the new 'log_enable'
              config option is turned on in bnxe.conf (it's on by default).
              Warning messages are always logged to syslog.
     Impact:  Requires admin to use system tools to gather interface information
              instead of relying on console messages.

  2. Change:  Incorporated a patch from Sun which adds additional support for
              Fault Management.
     Impact:  None


Version 5.2.12 (Nov 11, 2009)
=============================

  Fixes
  -----

  1. Problem: Cont00044414 - dladm shows the speed to be 10000 Mbps for all
              the flex 10 NICs
              Cont00044415 - link_speed shows the speed as 0 for bnxe2,4,6 ports
     Cause:   The dladm command pulls data from the driver via a different path
              than ndd and the dladm path was not gathering the correct values.

  Enhancement
  -----------

  1. Change:  Two different driver packages are NO longer needed for
              installation on Solaris 10u7 and 10u8 (i.e. because of the
              interrupt architecture differences).  A unified driver is now
              built that works on all versions of Solaris.
     Impact:  None

  2. Change:  Added support for TCP Large Segment Offload (LSO)
     Impact:  Better TCP transmit performance of large data segments.


Version 5.2.11 (Nov 6, 2009)
============================

  Fixes
  -----

  1. Problem: When an interface is unplumbed and then configured as part of
              an aggregation interface, the new aggregation interface fails
              to get a link up event.
     Cause:   The bnxe driver was not reporting the link state as unknown to
              the mac when plumbing up/down and interface.

  Enhancement
  -----------

  1. Change:  Statistics information removed from ndd and added to kstat.
              Each interface now creates kstat groups with the names
              'statistics', 'rxq0', and 'txq0'.
     Impact:  None


Version 5.2.10 (Oct 26, 2009)
=============================

  Fixes
  -----

  1. Problem: Cont00044048 - NC532i+Solaris: System panics when bnxe ver5.2.8
              is installed on U8b8a
     Cause:   The interrupt architecture in Solaris 10u8 and beyond has been
              changed resulting in the standard DDI interrupt APIs behaving
              differently between 10u7 and 10u8.  At this time it is not
              possible to compile a unified driver that works on all versions
              of Solaris so a package specific to 10u8 is now included.


Version 5.2.9 (Oct 23, 2009)
============================

  Fixes
  -----

  1. Problem: Cont00043660 - NC532i+Solaris:-System crashes when HCTS is run.
     Cause:   A bug was exposed in the Solaris kernel interrupt management.
              It has been verified with Sun that the pcplusmp kernel module has
              a bug where a maximum of 31 MSIX interrupts are available per
              interrupt priority level.  On a system with 4 ports, each running
              in multi-function mode, the last (16th) interface attached by the
              OS will fail to allocate one of its two MSIX interrupts and
              revert to Fixed.  This in turn can eventually expose an issue
              with interrupt management resulting in interrupts never being
              received on the interface which reverted back to Fixed.  To
              ensure all interfaces are able to allocate their two MSIX
              interrupts, a workaround is provided that changes the priority
              levels.  See the bnxe.conf file for examples.

  2. Problem: On SPARC an issue occurred where an invalid consumer index value
              was read by the rx interrupt handler resulting in a null pointer
              panic.
     Cause:   The endian byte swap macros contained a race condition on
              big-endian systems.  The passed in value would be evaluated
              twice inside the macro thereby resulting in a possible invalid
              computation when the value passed in was a pointer to volatile
              memory.

  Enhancement
  -----------

  1. Change:  In order to support Sun's Solaris kernel fault tolerance effort
              all hardware register accesses now use the ddi_get and ddi_put
              routines in order to maintain a consistent view between the host
              and the device.
     Impact:  None


Version 5.2.8 (Oct 1, 2009)
===========================

  Enhancement
  -----------

  1. Change:  The number of rx/tx buffer descriptors allocated during driver
              load has been changed to be a bit more dynamic.  The descriptor
              count config value in bnxe.conf is used for single function mode
              and on a 57711 in multi-function mode the value is divided by
              four(4).  This keeps DMA handle allocations at a minimum on a
              system will many interfaces.
     Impact:  When in multi-function mode the default number of rx/tx buffer
              descriptors is 512 which is low and will affect performance.
              After installation it is suggested these descriptor counts be
              increased until stability is guaranteed and the desired
              performance is reached.


Version 5.2.7 (Sep 28, 2009)
============================

  Fixes
  -----

  1. Problem: Cont00043751 - Solaris Everest SSH session failed to connect over
              Vlan environment. OK with regular port
     Cause:   When VLAN tagging and checksum offloading was used together, the
              hardware was writing the IP and TCP checksum values to the wrong
              place in outgoing packets.

  2. Problem: Fixed panic that occurs during init when failing to allocate all
              tx buffer descriptors.
     Cause:   An invalid DMA handler was trying to be freed.


Version 5.2.6 (Sep 21, 2009)
============================

  Enhancement
  -----------

  1. Change:  Cont00043671 - Add CL73 support for CX4 boards
     Impact:  None


Version 5.2.5 (Aug 25, 2009)
============================

  Fixes
  -----

  1. Problem: Only bnxe0 and bnxe1 can be plumbed in multi-function mode.
     Cause:   MSIX interrupt vector mappings were incorrect for multi-function.


Version 5.2.4 (Aug 19, 2009)
============================

  Enhancements
  ------------

  1. Change:  Integrated a patch from Sun that fixes various system level
              issues that could occur during the nicdrv test suite.
     Impact:  None


Version 5.2.3 (Aug 18, 2009)
============================

  Enhancements
  ------------

  1. Change:  MSIX interrupts are now working and enabled by default.
     Impact:  None


Version 5.2.2 (Aug 13, 2009)
============================

  Fixes
  -----

  1. Problem: Cont00042469 - Solaris Everest BL460 Over 3 days weekend a
              loadunload script resulted in second port of blade failure as :
              Failed to memory map device BAR=1 (-3)
     Cause:   DMA handles were being leaked when an interface is unplumbed.


Version 5.2.1 (Aug 5, 2009)
===========================

  Fixes
  -----

  1. Problem: It was found that stack mblks could be leaked.
     Cause:   After calls to the msgpullup API the original mblk was
              not getting free'd properly.

  Enhancements
  ------------

  1. Change:  Cont00042856 - In promiscuous mode, pass management traffic to
              the host.
     Impact:  None


Version 5.2.0 (Jul 31, 2009)
============================

  Fixes
  -----

  1. Problem: Cont00038625 - Tx Pause frame is always disabled
     Cause:   Autoneg hw flow control configuration was not getting
              initialized properly when an interface is plumbed.

  2. Problem: Cont00040217 - Solaris 5.0.2 unable to plumb interface
                             with HP system including Blade 460c G6
              Cont00040762 - Solaris, error occured when trying to
                             plumb interface in Multi Function mode
     Cause:   Solaris can allocate >4G physical addresses for DMA and
              the driver was passing only the lower 32-bits to the hw.

  Known Issues
  ------------

  1. When using MSIX interrupts sometimes interfaces fail to plumb so
     for now INTA interrupts are forced.


Version 5.1.2 (Jul 20, 2009)
============================

  Fixes
  -----

  1. Problem: It has been observed that receiving packets can halt
              when running over 1000 simultaneous uperf connections.
     Cause:   When we run out of rx buffers start forcing new buffer
              allocation/copying.

  2. Problem: A performance bottleneck was identified in the rx packet
              free routine.
     Cause:   Major contention was placed on the rx mutex.

  3. Problem: A panic could occur when initializing interrupts.
     Cause:   Bug introduced with the new MSI/MSIX support.


Version 5.1.1 (Jul 17, 2009)
============================

  Enhancements
  ------------

  1. Change:  Added support for MSI and MSIX based interrupts.  Interrupt
              preference is MSIX, MSI, then INTA and is automatically
              determined during driver load.
     Impact:  None

  2. Change:  Added support for "default_<config_item>" configuration lines
              in the bnxe.conf file.  Used to override the compiled in
              defaults.
     Impact:  None


Version 5.0.10 (Jul 1, 2009)
============================

  Enhancements
  ------------

  1. Change:  Cont00042411 - Manual set of 8727 EDC bit via device drivers
     Impact:  None


Version 5.0.9 (Jun 30, 2009)
============================

  Fixes
  -----

  1. Problem: Test failures could occur when transmitting jumbo frames that
              are larger than the page size (4096 for x86).  This issue only
              affects the 5.0 release branch of this driver.
     Cause:   The DMA mapping definition for the copy buffers was incorrect.


Version 5.0.8 (Jun 25, 2009)
============================

  Fixes
  -----

  1. Problem: Link speed was incorrect when retrieved via ndd.
     Cause:   Local store was not getting set properly.


Version 5.0.7 (Jun 23, 2009)
============================

  Fixes
  -----

  1. Problem: Link speed now logged correctly for link up events.
     Cause:   Various speed settings were not handled properly when logging.

  Enhancements
  ------------

  1. Change:  CTF information now compiled into the release driver.
     Impact:  None.


Version 5.0.6 (May 29, 2009)
============================

  Fixes
  -----

  1. Problem: Cont00040762 - Solaris, error occurred when trying to plumb
              interface in Multifunction mode.
     Cause:   Reverted back to using gcc as the SunStudio compiler created
              code that breaks the chip init process on the blade.

  Enhancements
  ------------

  1. Change:  Tx packet double copy buffers are now allocated individually
              instead of partitioned from one giant buffer.  This does result
              in a larger number of DMA resources being used but now the code
              is cleaner, easier to debug, and this fixes some potential DMA
              syncing issues.
     Impact:  None.


Version 5.0.5 (May 14, 2009)
============================

  Fixes
  -----

  1. Problem: Cont00038931 - Unable to plumb all the ports
     Cause:   Multifunction is now supported.

  Enhancements
  ------------

  1. Change:  Integrated support on SNV for Brussels configuration (dladm).
     Impact:  None.

  2. Change:  Installation packages are now also built for SNV.
     Impact:  None.


Version 5.0.4 (Apr 22, 2009)
============================

  Fixes
  -----

  1. Problem: When double copying Tx packets when streaming large amounts
              of data packet corruption is seen on the wire.
     Cause:   Fixed a problem when double copying Tx packets where buffer
              pointers would get corrupted.  Simplified the code that copies
              Tx packets and sets up DMA fragment mappings.

  2. Problem: When multifunction is configured the driver would only allow
              enumeration of the first two functions.
     Cause:   The T4.8 release hardcoded this restriction and it has been
              removed.

  3. Problem: When unplumbing and interface it is possible for the stack to
              continue holding Rx buffers owned by the driver.
     Cause:   Rx packet descriptors are now allocated individually and are
              able to be freed properly sometime after the parent interface
              is unplumbed.

  3. Problem: Extra multicast address lost when removing removing an address.
     Cause:   The multicast address table was not being maintained properly
              when removing an address from the table.

  Enhancements
  ------------

  1. Change:  Integrated code from Sun to support SNV/Crossbow.  Additionally,
              a common Makefile is used to build the driver for all platforms
              and architectures (dmake).
     Impact:  None.

  1. Change:  No longer create a minor node.
     Impact:  None.


Version 5.0.3 (Mar 31, 2009)
============================

  Default number of Rx and Tx buffers changed to 2048.
  All Tx packet data is now double copied by default.


Version 5.0.2 (Mar 17, 2009)
============================

  Initial release of the Solaris driver for 5.0 and beyond.
  Both the i386 and sparc architectures are supported.


Version 4.8.11 (Jan 14, 2009)
============================

  Fixes
  -----

  1. Problem: Cont00039225 - Solaris kernel panic after 2 days of non stop
              tcp out and smb in.
     Cause:   Problem occurred when a packet SGL had 16+ segments and
              Solaris decided to map a single segment across multiple DMA
              cookies.  This resulted in the driver running out of DMA
              handles and unable to use the last handle for copying the
              rest of the packet.  The panic was a result of a forced
              ASSERT which caught this problem.


Version 4.8.10 (Jan 9, 2009)
============================

  Fixes
  -----

  1. Problem: Cont00039060 - Solaris Blade .Over night idle system panicked
              with : bnxe: lm_stats_on _timer+121
     Cause:   Really fixed this time.  The API to check the default status
              block was modified in the past for the Windows VBD driver
              resulting in this driver breaking.


Version 4.8.9 (Dec 31, 2008)
============================

  Fixes
  -----

  1. Problem: Cont00039060 - Solaris Blade .Over night idle system panicked
              with : bnxe: lm_stats_on _timer+121
     Cause:   The statistics gathering code would panic because a stats
              ramrod was somehow missed.  I minor code change was made
              which added a lock eliminating contention in stats code.


Version 4.8.8 (Dec 18, 2008)
============================

  Fixes
  -----

  1. Problem: Forced panic could occur while transmitting tons of traffic
              and the interface was unplumbed.
     Cause:   Packets descriptors where getting lost when there were
              lower module send errors.

  2. Problem: Driver errors while trying to attach to all functions when
              running in multi-function mode.
     Cause:   Attach routine changed to only allow attaching to functions
              0 and 1 no matter the single/multi function setting.

  Enhancements
  ------------

  1. Change:  The man page has been updated.
     Impact:  None.


Version 4.8.7 (Dec 16, 2008)
============================

  Fixes
  -----

  1. Problem: Cont00038582 (again) Solaris System hung after 50 iterations
              of load unload while receiving data
     Cause:   When unplumbing an interface it was possible that
              outstanding rx and/or tx packets could still get processed.

  Enhancements
  ------------

  1. Change:  Added a bunch of new config parameters in bnxe.conf:
              rx_descs           - configure the number of RX packet
                                   descriptors
              tx_descs           - configure the number of RX packet
                                   descriptors
              rx_free_reclaim    - number outstanding free RX packet
                                   descriptors before posting for reuse
              tx_free_reclaim    - number outstanding free TX packet
                                   descriptors before posting for reuse
              interrupt_coalesce - enables interrupt coalescing
              rx_copy_threshold  - RX packets larger then this threshold
                                   will get copied before sent to stack
              tx_copy_threshold  - TX packets larger then this threshold
                                   will get copied before sent to hardware
     Impact:  None.

Version 4.8.6 (Dec 11, 2008)
============================

  Fixes
  -----

  1. Problem: Fixed a crash that could occur with scatter mblks due to
              a buffer copy API that wasn't implemented.
     Cause:   mm_copy_packet_buf() has been implemented.

  Enhancements
  ------------

  1. Change:  The link partner advertisements are no longer available for
              viewing via NDD.
     Impact:  None.

Version 4.8.5 (Dec 5, 2008)
===========================

  Fixes
  -----

  1. Problem: Cont00038623 - Solaris UDP rr test result with 4.8.3 is lower
              than 4.6.1
     Cause:   Interrupt coalescing was way to aggressive resulting in good
              burst traffic performance but poor interactive traffic
              performance.
     Impact:  To alleviate this issue now interrupt coalescing has been
              turned completely off.  Therefore burst traffic performance
              was gone down slightly from v4.8.4 and interactive traffic
              performance has gone up a tremendous amount.

  Enhancements
  ------------

  1. Change:  Cont00038851 - Need to add the tar.Z and DU packages for
              Solaris driver
     Impact:  The tar.Z has been added to the release packages but the DU
              image package has not.  This is because the driver is
              currently to large to fit on a single floppy image.
              Workarounds are being investigated.

Version 4.8.4 (Dec 1, 2008)
===========================

  Fixes
  -----

  1. Problem: Cont00038288 - System reboot after 10 iterations of port1 up
              down while port 2 is passing traffic
              Cont00038582 - Solaris System hung after 50 iterations of
              load unload while receiving data
     Cause:   Memory corruption could occur because rx packets where not
              being tracked/handled correctly when an interface gets
              plumbed and unplumbed.

  2. Problem: Cont00038581 - Solaris IPV6 will not pass data unless port
              was put in then out of promiscuous mode.
     Cause:   The rx mask was not being set properly in the chip to receive
              multicast frames.

  3. Problem: Cont00038671 - Solaris10up6 Jumbo frames was received even
              MTU was set to 1500
     Cause:   The mtu was not being set properly in the chip.

  Enhancements
  ------------

  1. Change:  Changing phy settings via ndd now works as expected.
     Impact:  none

  Known Issues
  ------------

  1. Performance is still a bit low especially when running traffic
     bidirectional.

  2. Ethernet Phy auto negotiation for flow is not working properly.  A
     workaround is to force the flows setting via bnxe.conf or ndd.

Version 4.8.3 (Nov 18, 2008)
============================

  Fixes
  -----

  1. Problem: Cont00038567 - Kernel panic after reboot with interface
              preconfigured that has MTU set at 9000
              Cont00038452 - On a blade environment, system will hang after
              bnxe0 then bnxe1 plumb.
              Cont00038452 - On a blade environment, system will hang after
              bnxe0 then bnxe1 plumb.
              Cont00038546 - System crashes while adding QLogic
              BRCMbnxe.4.8.2 10G NIC driver
     Cause:   There existed a memory corruption bug in configuration
              call path of the driver.

  Enhancements
  ------------

  1. Change:  The bnxe.conf file no longer uses the integer arrays for
              assigning configuration values to specific instances.
              Instead the far simpler "bnxe<#>_<item>=X" format is used.
     Impact:  none

Version 4.8.2 (Nov 10, 2008)
============================

  Fixes
  -----

  1. Problem: Cont00038255 - After 500 iterations of port load unload system is
              not able to bring up interfaces
     Cause:   Not all memory was releases when unloading the driver.

  2. Problem: Cont00038288 - System reboot after 10 iterations of port 1 up
              down while port 2 is passing traffic
     Cause:   Memory corruption was occurring because invalid parameters were
              being used during initialization of the LM.

  Enhancements
  ------------

  1. Change:  Protection has been added to prevent the driver from being
              unloaded while an instance is still plumbed.
     Impact:  Fixes a potential crash.

  2. Change:  All RX packets owned by the Solaris stack are now wait for and
              retained when an interface is unplumbed.
     Impact:  Fixes a potential crash.

Version 4.8.1 (Oct 31, 2008)
============================

  Fixes
  -----

  1. Problem: Cont00038237 - Solaris10 57711e Error : can not enable
              interrupts when trying to bring up interface
     Cause:   The non-debug version of the driver exposed a bug where a
              function was not returning the correct value.

  2. Problem: Cont00038239 - Solaris10 57711e Error messages scrolled up
              after interface was configured (using debug version)
     Cause:   The multicast address table was not formatted correctly when
              sending to the LM.

Version 1.0.1 (Oct 24, 2008)
============================

This is the initial release of the Solaris driver (x86 only).

